Kaip įdiegti „Microweber“ „CentOS 7“.
Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys
Nuolatinis integravimas yra „DevOps“ programinės įrangos kūrimo praktika, leidžianti kūrėjams dažnai sujungti modifikuotą kodą į bendrą saugyklą daug kartų per dieną. Po kiekvieno sujungimo atliekamos automatinės versijos ir testai, siekiant aptikti kodo problemas. Tai leidžia kūrėjams greitai rasti ir pašalinti klaidas, kad pagerintų programinės įrangos kokybę ir užtikrintų nuolatinį programinės įrangos pristatymą. Perjungti į ir atgal iš „Concourse“ yra labai paprasta, nes visa konfigūracija išsaugoma deklaratyviuose failuose, kuriuos galima patikrinti versijos valdiklyje. Tai taip pat suteikia žiniatinklio vartotojo sąsają, kurioje interaktyviai rodoma kūrimo informacija.
Būtinai pakeiskite visas įvykių 192.0.2.1
ir ci.example.com
su savo tikrojo Vultr viešojo IP adresą ir faktinę domeno vardas.
Atnaujinkite bazinę sistemą naudodami vadovą Kaip atnaujinti CentOS 7 . Kai sistema bus atnaujinta, diegkite PostgreSQL.
PostgreSQL yra objektų reliacinė duomenų bazių sistema. Concourse saugo savo dujotiekio duomenis PostgreSQL duomenų bazėje. Pridėkite PostgreSQL saugyklą.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Įdiekite PostgreSQL duomenų bazės serverį.
sudo yum -y install postgresql96-server postgresql96-contrib
Inicijuoti duomenų bazę.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
initdb
sukuria naują PostgreSQL duomenų bazių klasterį, kuris yra duomenų bazių, kurias valdo vienas serverio egzempliorius, rinkinys. Redaguokite pg_hba.conf
failą, kad įgalintumėte MD5 pagrįstą autentifikavimą.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Ieškoti šias eilutes ir pakeisti vertybes peer
ir ident
į METHOD
stulpelį trust
ir md5
, atitinkamai.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Atnaujinus konfigūraciją turėtų atrodyti taip.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Paleiskite PostgreSQL serverį ir įgalinkite jį automatiškai paleisti įkrovos metu.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Pakeiskite numatytojo „PostgreSQL“ vartotojo slaptažodį.
sudo passwd postgres
Prisijunkite kaip PostgreSQL vartotojas:
sudo su - postgres
Sukurkite naują „PostgreSQL“ vartotoją „Concourse CI“.
createuser concourse
Pastaba : Numatytasis PostgreSQL vartotojas gali būti naudojamas duomenų bazės autentifikavimui, tačiau rekomenduojama naudoti specialų vartotoją Concourse duomenų bazės autentifikavimui gamybos sąrankoje.
PostgreSQL suteikia apvalkalą duomenų bazėje užklausoms vykdyti. Perjunkite į PostgreSQL apvalkalą paleisdami:
psql
Nustatykite naujai sukurto Concourse duomenų bazės vartotojo slaptažodį.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Svarbu : pakeiskite DBPassword
stipriu slaptažodžiu. Užsirašykite slaptažodį, nes jo reikės vėliau mokymo programoje.
Sukurkite naują Concourse duomenų bazę.
CREATE DATABASE concourse OWNER concourse;
Išeikite iš psql
apvalkalo.
\q
Perjungti į sudo vartotoją iš dabartinio postgres vartotojo.
exit
Atsisiųskite naujausią vykdomosios programos Concourse versiją ir išsaugokite ją, /usr/bin
kad ją būtų galima vykdyti tiesiogiai. Naujausią „Concourse“ ir „Fly“ dvejetainių failų versiją galite rasti „ Concourse“ atsisiuntimo puslapyje . Nauji leidimai yra labai dažni. Pakeiskite toliau pateiktą nuorodą nauja nuoroda į naujausią versiją.
sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/concourse_linux_amd64 -O /usr/bin/concourse
Taip pat atsisiųskite naujausią vykdomosios programos „fly“ versiją ir išsaugokite ją /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/fly_linux_amd64 -O /usr/bin/fly
Fly yra komandų eilutės sąsaja, skirta prisijungti prie Concourse CI ATC API. „Fly“ galima naudoti kelioms platformoms, tokioms kaip „Linux“, „Windows“ ir „MacOS“.
Priskirkite vykdymo leidimą atsisiųstam concourse
ir fly
dvejetainiams failams.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Patikrinkite, ar Concourse ir Fly veikia tinkamai, patikrindami jų versiją.
concourse -version
fly -version
RSA raktų poros suteikia galimybę užšifruoti ryšį tarp Konkurso komponentų.
Kad Concourse veiktų, turi būti sugeneruotos bent trys raktų poros. Norėdami užšifruoti seanso duomenis, sugeneruokite session_signing_key
. Šį raktą TSA taip pat naudos, kad pasirašytų užklausas, kurias ji pateikia ATC. Norėdami apsaugoti TSA SSH serverį, sugeneruokite tsa_host_key
. Galiausiai, generuoti worker_key
už kiekvieno darbuotojo.
Sukurkite naują katalogą, kuriame bus saugomi su Concourse CI susiję raktai ir konfigūracija.
sudo mkdir /opt/concourse
Sugeneruokite reikiamus raktus.
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key
Įgaliokite darbuotojų viešąjį raktą nukopijuodami jo turinį į authorized_worker_keys
failą:
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse pateikia du atskirus komponentus, kuriuos reikia pradėti: žiniatinklio ir darbuotojo. Paleiskite Concourse žiniatinklį.
sudo concourse web \
--basic-auth-username admin \
--basic-auth-password StrongPass \
--session-signing-key /opt/concourse/session_signing_key \
--tsa-host-key /opt/concourse/tsa_host_key \
--tsa-authorized-keys /opt/concourse/authorized_worker_keys \
--postgres-user=concourse \
--postgres-password=DBPassword \
--postgres-database=concourse \
--external-url http://192.0.2.1:8080
basic-auth
Jei norite, pakeiskite vartotojo vardą ir slaptažodį . Įsitikinkite, kad kelias į raktų failus yra teisingas, ir įsitikinkite, kad yra teisinga vartotojo vardo ir slaptažodžio reikšmė PostgreSQL duomenų bazės konfigūracijoje.
Pastaba : ATC klausys numatytojo prievado, 8080
o TSA – prievado 2222
. Jei autentifikavimo nenorite, palikite --no-really-i-dont-want-any-auth
parinktį pašalinę pagrindines autentifikavimo parinktis.
Paleidus žiniatinklio serverį, turėtų būti rodoma ši išvestis.
{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}
Kol kas sustabdykite serverį, nes dar reikia nustatyti keletą dalykų.
Paleiskite „Concourse CI Worker“.
sudo concourse worker \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-public-key /opt/concourse/tsa_host_key.pub \
--tsa-worker-private-key /opt/concourse/worker_key
Aukščiau pateikta komanda daro prielaidą, kad TSA veikia „localhost“ ir klausosi numatytojo prievado 2222
.
Nors Concourse žiniatinklį ir darbuotoją galima lengvai paleisti naudojant aukščiau pateiktas komandas, serveriui valdyti rekomenduojama naudoti Systemd.
Naudojant „Systemd“ paslaugą programai tvarkyti užtikrinama, kad programa būtų automatiškai paleidžiama gedus ir įkrovos metu. „Concourse“ serveris neima duomenų iš jokio konfigūracijos failo, bet gali pasiekti duomenis iš aplinkos kintamųjų. Užuot nustatę visuotinius aplinkos kintamuosius, sukurkite naują failą aplinkos kintamiesiems saugoti, o tada perduokite kintamuosius Concourse CI naudodami Systemd paslaugą.
Sukurkite naują Concourse žiniatinklio aplinkos failą.
sudo nano /opt/concourse/web.env
Užpildykite failą.
CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse
CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080
BASIC_AUTH
Jei norite, pakeiskite vartotojo vardą ir slaptažodį . Įsitikinkite, kad kelias į raktų failus yra teisingas, ir įsitikinkite, kad yra teisinga vartotojo vardo ir slaptažodžio reikšmė PostgreSQL duomenų bazės konfigūracijoje.
Panašiai sukurkite aplinkos failą darbuotojui.
sudo nano /opt/concourse/worker.env
Užpildykite failą.
CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1
Kadangi aplinkos failuose yra vartotojo vardas ir slaptažodžiai, pakeiskite jo teises, kad jos negalėtų pasiekti kiti vartotojai.
sudo chmod 600 /opt/concourse/*.env
Dabar sukurkite naują „Concourse“ vartotoją, kad paleistumėte žiniatinklio aplinką. Tai užtikrins, kad žiniatinklio serveris veiktų izoliuotoje aplinkoje.
sudo adduser --system concourse
Suteikite Concourse vartotojui nuosavybės teisę į Concourse CI failo katalogą.
sudo chown -R concourse:concourse /opt/concourse
Sukurkite naują „Concourse“ žiniatinklio tarnybos sistemos paslaugos failą.
sudo nano /etc/systemd/system/concourse-web.service
Užpildykite failą.
[Unit]
Description=Concourse CI web server
After=postgresql-9.6.service
[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web
[Install]
WantedBy=multi-user.target
Išsaugokite ir uždarykite failą. Sukurkite naują paslaugos failą, skirtą Concourse darbuotojo paslaugai.
sudo nano /etc/systemd/system/concourse-worker.service
Užpildykite failą.
[Unit]
Description=Concourse CI worker process
After=concourse-web.service
[Service]
Type=simple
User=root
Group=root
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker
[Install]
WantedBy=multi-user.target
Dabar žiniatinklio ir darbuotojų paslaugą galima paleisti tiesiogiai paleidus:
sudo systemctl start concourse-web concourse-worker
Norėdami įgalinti darbuotojo ir žiniatinklio procesą automatiškai paleisti įkrovos metu, paleiskite:
sudo systemctl enable concourse-worker concourse-web
Norėdami patikrinti paslaugų būseną, paleiskite:
sudo systemctl status concourse-worker concourse-web
Jei paslauga nepaleista arba jos FAILED
būsenos, pašalinkite talpyklą iš /tmp
katalogo.
sudo rm -rf /tmp/*
Iš naujo paleiskite paslaugas.
sudo systemctl restart concourse-worker concourse-web
Atkreipkite dėmesį, kad šį kartą paslaugos pradėtos tinkamai. Išvestis patikrinus paslaugų būseną turėtų būti panaši.
[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3037 (concourse)
CGroup: /system.slice/concourse-worker.service
└─3037 /usr/bin/concourse worker
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...
● concourse-web.service - Concourse CI web server
Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3036 (concourse)
CGroup: /system.slice/concourse-web.service
└─3036 /usr/bin/concourse web
Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.
Sureguliuokite ugniasienę, kad leistų 8080 prievadą, kuriame veikia ATS, ir 2222 prievadą, kuriame veikia TSA.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent
sudo firewall-cmd --reload
Paleidus serverį, Concourse CI žiniatinklio sąsają galima pasiekti http://192.0.2.1:8080
bet kurioje naršyklėje. Prisijunkite naudodami aplinkos faile pateiktą vartotojo vardą ir slaptažodį.
Norėdami prisijungti prie serverio naudodami Fly, paleiskite:
fly -t my-ci login -c http://192.0.2.1:8080
Aukščiau pateikta komanda naudojama pirminiam prisijungimui prie serverio. -t
naudojamas norint pateikti tikslo pavadinimą. pakeiskite my-ci
bet kokiu norimu paskirties pavadinimu. Aukščiau pateikta komanda prisijungs prie numatytosios komandos main
. Ji paprašys aplinkos faile pateikto vartotojo vardo ir slaptažodžio.
Išvestis atrodys taip.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
Tikslinis prisijungimas bus išsaugotas vieną dieną. Po to jis nustos galioti.
Norėdami nedelsiant atsijungti.
fly -t my-ci logout
„fly“ galima naudoti prisijungiant prie serverio už tinklo ribų, tačiau tik tuo atveju, jei serveris turi viešą IP adresą ir jis pasiekiamas iš už tinklo ribų. „Windows“ arba „MacOS“ dvejetainį failą galima atsisiųsti iš atsisiuntimo svetainės arba iš serverio žiniatinklio vartotojo sąsajos.
Prisijungimai ir kita informacija, siunčiama per žiniatinklio vartotojo sąsają į Concourse serverį, nėra apsaugota. Ryšys nėra užšifruotas. „Nginx“ atvirkštinį tarpinį serverį galima nustatyti naudojant nemokamą SSL šifravimą.
Įdiekite „Nginx“ žiniatinklio serverį ir „Certbot“, kuris yra „Let's Encrypt CA“ kliento programa.
sudo yum -y install certbot-nginx nginx
Paleiskite ir įgalinkite „Nginx“ automatiškai paleisti įkrovos metu:
sudo systemctl start nginx
sudo systemctl enable nginx
Kad būtų galima pateikti užklausą dėl sertifikatų, per užkardą turi būti įjungti 80 ir 443 prievadai arba standartinės HTTP ir HTTPS paslaugos. „Certbot“ patikrins domeno valdžią prieš išduodant sertifikatus.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
8080 prievado nebereikia leisti per užkardą, nes „Concourse“ dabar bus paleista naudojant standartinį HTTPS prievadą. Pašalinkite ugniasienės įrašą, kad leisti 8080 prievadą.
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
Pastaba
To obtain certificates from Let's Encrypt CA, the domain for which the certificates are to be generated must be pointed towards the server. If not, make the necessary changes to the DNS records of the domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.
Sukurkite SSL sertifikatus.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
Sugeneruoti sertifikatai greičiausiai bus saugomi /etc/letsencrypt/live/ci.example.com/
kataloge. SSL sertifikatas bus saugomas kaip , fullchain.pem
o privatusis raktas bus saugomas kaip privkey.pem
.
Encrypt sertifikatai baigiasi po 90 dienų, todėl rekomenduojama automatinį sertifikatų atnaujinimą nustatyti naudojant cronjobs. Cron yra sistemos paslauga, naudojama periodinėms užduotims vykdyti.
Atidarykite cron darbo failą.
sudo crontab -e
Failo pabaigoje pridėkite šią eilutę.
30 5 * * 1 /usr/bin/certbot renew --quiet
Pirmiau nurodytas cron darbas bus vykdomas kiekvieną pirmadienį 5:30 val. Jei baigiasi sertifikato galiojimo laikas, jis automatiškai atnaujinamas.
Sukurkite naują virtualų pagrindinį kompiuterį.
sudo nano /etc/nginx/conf.d/concourse-ssl.conf
Užpildykite failą.
server {
listen 80;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name ci.example.com;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/concourse.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://ci.example.com;
}
}
Pastaba : pakeiskite ci.example.com
tikru domenu.
Redaguokite aplinkos failą, sukurtą concours Web.
sudo nano /opt/concourse/web.env
Pakeiskite reikšmę CONCOURSE_EXTERNAL_URL
ir taip pat pridėkite dar dvi eilutes failo pabaigoje.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Išsaugokite failą ir iš naujo paleiskite „Concourse Web“, „Worker“ ir „Nginx“ žiniatinklio serverį:
sudo systemctl restart concourse-worker concourse-web nginx
Visi į naršyklę ir iš jos siunčiami duomenys dabar yra apsaugoti SSL šifravimu.
Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys
Ko jums reikia Vultr VPS su mažiausiai 1 GB RAM. SSH prieiga (su root / administratoriaus teisėmis). 1 veiksmas: „BungeeCord“ diegimas Pirmiausia
Naudojate kitą sistemą? „Apache OpenMeetings“ yra atvirojo kodo žiniatinklio konferencijų programa. Jis parašytas Java kalba ir palaiko kelis duomenų bazių serverius. aš
Naudojate kitą sistemą? Jekyll yra gera „WordPress“ alternatyva. Tam nereikia jokių duomenų bazių ir jis veikia daugeliui pažįstama kalba
Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.
Elasticsearch yra populiarus atvirojo kodo viso teksto paieškos ir analizės variklis. Dėl savo universalumo, mastelio ir paprasto naudojimo Elasticsearch yra platus
Naudojate kitą sistemą? Automad yra atvirojo kodo failais pagrįsta turinio valdymo sistema (TVS) ir šablonų variklis, parašytas PHP. „Automad“ šaltinio kodas i
Naudojate kitą sistemą? osTicket yra atvirojo kodo klientų aptarnavimo bilietų pardavimo sistema. „osTicket“ šaltinio kodas viešai priglobtas „Github“. Šioje pamokoje
Naudojate kitą sistemą? Open Web Analytics (OWA) yra atvirojo kodo žiniatinklio analizės programa, kurią galima naudoti norint stebėti ir analizuoti, kaip žmonės naudojasi jūsų svetaine.
Naudojate kitą sistemą? Fork yra atvirojo kodo TVS, parašyta PHP. „Forks“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti Fork CM
Naudojate kitą sistemą? CMS Made Simple 2.2 yra lanksti ir išplečiama, nemokama ir atvirojo kodo turinio valdymo sistema (TVS), sumaniai sukurta
Neos yra naujoviška atvirojo kodo turinio valdymo sistema, puikiai tinkanti kuriant ir redaguojant internetinį turinį. Turint omenyje autorius ir redaktorius, Neo
Naudojate kitą sistemą? Ghost yra atvirojo kodo tinklaraščių platforma, kuri populiarėja tarp kūrėjų ir paprastų vartotojų nuo 201 m.
Kartais turėsite padidinti serverio reagavimą, kad išvengtumėte atminties problemų. Išnyksta atminties problemos, kai a
Labai saugus FTP demonas arba tiesiog vsFTPd yra lengva programinė įranga, kurią galima pritaikyti. Šioje pamokoje mes užsitikrinsime jau
Naudojate kitą sistemą? Zammad yra atviro kodo pagalbos tarnyba / bilietų pardavimo sistema, skirta klientų aptarnavimo komandoms. Su Zammad, klientų aptarnavimo tarnyba
Naudojate kitą sistemą? Thelia yra atvirojo kodo įrankis, skirtas elektroninio verslo svetainėms kurti ir internetiniam turiniui tvarkyti, parašyta PHP kalba. Thelia šaltinio kodas i
Naudojate kitą sistemą? Backdrop CMS 1.8.0 yra paprasta ir lanksti, mobiliesiems pritaikyta nemokama ir atvirojo kodo turinio valdymo sistema (TVS), kuri leidžia mums
Naudojate kitą sistemą? Pagekit yra atvirojo kodo TVS, parašyta PHP. Pagekit šaltinio kodas yra viešai priglobtas GitHub. Šis vadovas parodys, kaip t
Ar jūsų „Linux“ serverį pasiekia keli vartotojai? Jei taip, apsvarstykite galimybę pridėti SSH prisijungimo pranešimą, kai kas nors prisijungia. Toliau pateikti pavyzdžiai siunčia el. laišką
Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.
Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.
Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.
Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.
Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…
Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.
Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.
Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.
Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.
Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį