Kako namestiti orodje za upravljanje projektov Taiga na Ubuntu 16.04

Taiga je brezplačna odprtokodna aplikacija za vodenje projektov. Za razliko od drugih orodij za vodenje projektov, Taiga uporablja inkrementalni agilni pristop za upravljanje razvoja projekta. Taiga je zelo zmogljiva in popolnoma prilagodljiva aplikacija. Zadnja stran Taige je napisana v Pythonu z uporabo ogrodja Django. Frontend je napisan v JavaScriptu z uporabo okvirjev CoffeeScript in AngularJS. Taiga vključuje funkcije, kot so sodelovanje pri projektih, tabla Kanban, sledenje napakam, poročanje, sledenje časa, zaostanki, wiki in še več.

Predpogoji

  • Primerek strežnika Vultr Ubuntu 16.04 z vsaj 1 GB RAM-a.
  • Uporabnik sudo .

V tej vadnici bomo uporabili taiga.example.comime domene, ki je usmerjeno na strežnik. Zamenjajte vse pojavitve taiga.example.comz vašim dejanskim imenom domene.

Posodobite svoj osnovni sistem z uporabo priročnika Kako posodobiti Ubuntu 16.04 . Ko je vaš sistem posodobljen, nadaljujte z namestitvijo PostgreSQL.

Namestite PostgreSQL

PostgreSQL je objektno-relacijski sistem baz podatkov, znan po svoji stabilnosti in hitrosti. Taiga uporablja PostgreSQL za shranjevanje svoje baze podatkov. Dodajte repozitorij PostgreSQL v sistem.

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

Uvozite podpisni ključ GPG in posodobite sezname paketov.

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

Namestite strežnik baze podatkov PostgreSQL.

sudo apt -y install postgresql

Zaženite strežnik PostgreSQL in omogočite, da se samodejno zažene ob zagonu.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Spremenite geslo za privzetega uporabnika PostgreSQL.

sudo passwd postgres

Prijavite se kot uporabnik PostgreSQL.

sudo su - postgres

Ustvarite novega uporabnika PostgreSQL za Taigo.

createuser taiga 

PostgreSQL ponuja psqllupino za izvajanje poizvedb v bazi podatkov. Preklopite na lupino PostgreSQL.

psql

Nastavite geslo za novoustvarjenega uporabnika za bazo podatkov Taiga.

ALTER USER taiga WITH ENCRYPTED password 'DBPassword';

Zamenjajte DBPasswordz varnim geslom. Ustvarite novo bazo podatkov za namestitev Taiga.

CREATE DATABASE taiga OWNER taiga;

Izstopite iz psqllupine.

\q

Preklopite na sudouporabnika.

exit

Namestite Python

Taiga zahteva različico Python 3.4 ali novejšo, Python 3.5 pa je vnaprej nameščen v distribuciji Ubuntu 16.04. Namestite še nekaj potrebnih paketov.

sudo apt -y install python3 python3-pip python3-dev python3-dev virtualenvwrapper

Navidezno okolje Python se uporablja za ustvarjanje izoliranega virtualnega okolja za projekt Python. Navidezno okolje vsebuje lastne namestitvene imenike in ne deli knjižnic z globalnimi in drugimi navideznimi okolji. Ko je Python 3 uspešno nameščen, bi morali imeti možnost preveriti njegovo različico.

python3 -V

Videli boste naslednje.

user@vultr:~$ python3 -V
Python 3.5.2

Nadgradnja pip, ki je aplikacija za upravljanje odvisnosti.

sudo pip3 install --upgrade setuptools pip 

Prav tako namestite nekaj orodij za gradnjo, ki bodo potrebna pozneje za prevajanje odvisnosti.

sudo apt -y install build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool libffi-dev curl git tmux gettext

Namestite RabbitMQ

Taiga uporablja RabbitMQ za obdelavo čakalne vrste sporočil. RabbitMQ zahteva, da knjižnice Erlang delujejo. Namesti Erlang.

sudo apt -y install erlang

Dodajte skladišče RabbitMQ.

echo 'deb http://www.rabbitmq.com/debian/ stable main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list

Uvozite podpisni ključ RabbitMQ GPG.

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

Posodobite informacije o skladišču.

sudo apt update

Namestite RabbitMQ.

sudo apt -y install rabbitmq-server

Zaženite in omogočite strežnik RabbitMQ.

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

Dodajte uporabnika RabbitMQ in vhost. Prav tako zagotovite dovoljenje uporabniku prek gostitelja.

sudo rabbitmqctl add_user taiga StrongMQPassword
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"

Ne pozabite zamenjati StrongMQPasswordz varnim geslom.

Namestite Nodejs

Za prevajanje sprednjega dela Taige je potrebna različica Node.js 7 ali novejša. Dodajte skladišče Node.js različice 8.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Namestite Node.js in pwgenpripomoček.

sudo apt install -y nodejs pwgen npm

pwgenbo uporabljen kasneje za ustvarjanje močnega skrivnega niza. Namestite CoffeeScript, saj bo uporabljen za prevajanje datotek Taiga, napisanih v okviru CoffeeScript.

sudo npm install -g coffee-script gulp

Namestite Taiga Backend

Dodajte novega uporabnika sistema za Taigo, da zagotovite, da se procesi Taiga izvajajo kot neprivilegirani uporabnik.

sudo adduser taiga
sudo su - taiga

Opomba : Od zdaj naprej je treba vse ukaze izvajati kot neprivilegirani uporabnik, taigadokler vas ne pozove, da preklopite nazaj na sudouporabnika.

Ustvarite nov imenik za shranjevanje dnevniških datotek.

mkdir -p ~/logs

Klonirajte zaledni repozitorij Taiga iz GitHuba in preverite najnovejšo stabilno vejo.

git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable

Zdaj ustvarite novo virtualno okolje za Taigo s Pythonom 3.

mkvirtualenv -p /usr/bin/python3 taiga
pip3 install --upgrade setuptools

Namestite zahtevane odvisnosti Python z uporabo pip.

pip3 install -r requirements.txt

Bazo podatkov napolnite s potrebnimi začetnimi podatki.

python3 manage.py migrate --noinput
python3 manage.py loaddata initial_user
python3 manage.py loaddata initial_project_templates
python3 manage.py compilemessages
python3 manage.py collectstatic --noinput

Zgornji ukazi bodo zapisali podatke v bazo podatkov PostgreSQL. Taiga pošilja tudi nekaj demo ali vzorčnih podatkov, ki so lahko uporabni za oceno izdelka. Če želite namestiti vzorčne podatke, zaženite naslednje.

python3 manage.py sample_data

Opomba : Namestitev vzorčnih podatkov je neobvezna in je namenjena samo oceni izdelka.

Preden nadaljujemo z ustvarjanjem konfiguracijske datoteke za backend Taiga, moramo ustvariti skrivni niz. Ta niz bo uporabljen za šifriranje podatkov seje.

Ustvari naključni niz 64 znakov.

pwgen -s -1 64

Izhod bi morali videti kot naključni niz.

(taiga) taiga@vultr:~/taiga-back$ pwgen -s -1 64
fhDfyYVJ4EH3tvAyUzmfWSeCXuf5sy5EEWrMQPaf9t3JSFrpiL6yvUEOWsFOTscP

Ustvarite novo konfiguracijsko datoteko za Taiga Backend.

nano ~/taiga-back/settings/local.py

Zapolnite datoteko z naslednjo kodo.

from .common import *

MEDIA_URL = "https://taiga.example.com/media/"
STATIC_URL = "https://taiga.example.com/static/"
SITES["front"]["scheme"] = "https"
SITES["front"]["domain"] = "taiga.example.com"

SECRET_KEY = "Generated_Secret_Key"

DEBUG = False
PUBLIC_REGISTER_ENABLED = True

DEFAULT_FROM_EMAIL = "[email protected]"
SERVER_EMAIL = DEFAULT_FROM_EMAIL

#CELERY_ENABLED = True

EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga"}

# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
#EMAIL_USE_TLS = False
#EMAIL_HOST = "mail.example.com"
#EMAIL_HOST_USER = "[email protected]"
#EMAIL_HOST_PASSWORD = "SMTPPassword"
#EMAIL_PORT = 25

# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = "yourgithubclientid"
#GITHUB_API_CLIENT_SECRET = "yourgithubclientsecret"

Make sure to replace the example domain name with the actual one in the above code. Also, replace Generated_Secret_Key with the actual secret key and StrongMQPassword with the actual password for the Taiga message queue user. If you have an SMTP server ready and you wish to use email sending features immediately, you can uncomment the email options and set the appropriate value. If you do not have a mail server ready, you can skip setting up the email feature for now and set it later in this configuration file.

If you wish to enable GitHub login, create an application in GitHub and provide the API client ID and client secret.

To immediately check if the Taiga backend can be started, run the built-in Django server.

workon taiga
python manage.py runserver

You will see the following output if the server has started successfully.

(taiga) taiga@vultr:~/taiga-back$ workon taiga
(taiga) taiga@vultr:~/taiga-back$ python manage.py runserver
Trying import local.py settings...
Trying import local.py settings...
Performing system checks...

System check identified no issues (0 silenced).
October 28, 2017 - 10:29:38
Django version 1.10.6, using settings 'settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

To verify if the API can be accessed, open another terminal session and run the following.

curl http://127.0.0.1:8000/api/v1/

You will see similar output returned by the API call.

user@vultr:~$ curl http://127.0.0.1:8000/api/v1/
{"webhooks": "http://127.0.0.1:8000/api/v1/webhooks", "invitations": "http://127.0.0.1:8000/api/v1/invitations", "severities": "http://127.0.0.1:8000/api/v1/severities", "memberships": "http://127.0.0.1:8000/api/v1/memberships", "user-storage": "http://127.0.0.1:8000/api/v1/user-storage", "epics/(?P<resource_id>\\d+)/voters": "http://127.0.0.1:8000/api/v1/epics/(?P<resource_id>\\d+)/voters", "wiki": "http://127.0.0.1:8000/api/v1/wiki", "priorities": "http://127.0.0.1:8000/api/v1/priorities", "userstories/attachments": "http://127.0.0.1:8000/api/v1/userstories/attachments", "epics/(?P<epic>[^/.]+)/related_userstories": "http://127.0.0.1:8000/api/v1/epics/(?P<epic>[^/.]+)/related_userstories", "timeline/user": "http://127.0.0.1:8000/api/v1/timeline/user", "userstories/(?P<resource_id>\\d+)/voters": "http://127.0.0.1:8000/api/v1/userstories/(?P<resource_id>\\d+)/voters", "wiki-links": "http://127.0.0.1:8000/api/v1/wiki-links", "epics/attachments": "http://127.0.0.1:8000/api/v1/epics/attachments", "issues/custom-attributes-values": "http://127.0.0.1:8000/api/v1/issues/custom-attributes-values

Stop the Taiga backend server by pressing "ctrl + C" and deactivate the virtual environment.

deactivate

Install Frontend

The Taiga frontend is the component of Taiga which serves the Web user interface. Clone the Taiga frontend repository from Github and checkout the latest stable branch.

cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
cd taiga-front-dist
git checkout stable

Create a new configuration file for the Taiga frontend.

nano ~/taiga-front-dist/dist/conf.json

Populate the file.

{
    "api": "https://taiga.example.com/api/v1/",
    "eventsUrl": "wss://taiga.example.com/events",
    "eventsMaxMissedHeartbeats": 5,
    "eventsHeartbeatIntervalTime": 60000,
    "eventsReconnectTryInterval": 10000,
    "debug": true,
    "debugInfo": false,
    "defaultLanguage": "en",
    "themes": ["taiga"],
    "defaultTheme": "taiga",
    "publicRegisterEnabled": true,
    "feedbackEnabled": true,
    "privacyPolicyUrl": null,
    "termsOfServiceUrl": null,
    "maxUploadFileSize": null,
    "contribPlugins": [],
    "tribeHost": null,
    "importers": [],
    "gravatar": true
}

Make sure to replace the example domain with the actual domain. You can also change the default language and other parameters in the above configuration.

Install Taiga Events

Apart from the frontend and backend, we also need to install Taiga events. Taiga events is a web socket server, and it enables the Taiga frontend to show real-time changes in modules such as backlog, Kanban and more. It also uses the RabbitMQ server for message processing.

Clone the Taiga events repository from Github.

cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events

Install the Node.js dependencies using npm.

npm install

Create a new configuration file for Taiga events.

nano ~/taiga-events/config.json

Populate the file.

{
    "url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga",
    "secret": "Generated_Secret_Key",
    "webSocketServer": {
        "port": 8888
    }
}

Replace Generated_Secret_Key with the actual 64 characters long secret key which you have generated previously. The secret key should be exactly the same as the key you provided in the Taiga backend configuration file. Also, update the StrongMQPassword with the actual password for Taiga message queue user.

Configure Circus

Circus je upravljavec procesov za aplikacije Python. Circus bomo uporabljali za vodenje zaledja Taiga in dogodkov.

Preklopite nazaj na sudouporabnika.

exit

Opomba : Od zdaj boste morali ukaze izvajati s pomočjo sudouporabnika.

sudo apt -y install circus

Ustvarite novo konfiguracijsko datoteko Circus za izvajanje zaledja Taiga.

sudo nano /etc/circus/conf.d/taiga.ini

Izpolnite datoteko.

[watcher:taiga]
working_dir = /home/taiga/taiga-back
cmd = gunicorn
args = -w 3 -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/gunicorn.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/gunicorn.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4

[env:taiga]
PATH = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.5/site-packages

Ustvarite novo konfiguracijo Circus za izvajanje dogodkov Taiga.

sudo nano /etc/circus/conf.d/taiga-events.ini

Izpolnite datoteko.

[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/local/bin/coffee
args = index.coffee
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/taigaevents.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 12
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/taigaevents.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 12

Znova zaženite Circus in omogočite samodejni zagon ob zagonu.

sudo systemctl restart circusd
sudo systemctl enable circusd

Preverite stanje cirkusa.

circusctl status

Če je Circus pravilno zagnal vse procese Tajge, boste videli naslednji rezultat.

user@vultr:~$ circusctl status
circusd-stats: active
plugin:flapping: active
taiga: active
taiga-events: active

Če vidite, da kateri koli proces ni aktiven, sudo chmod -R 777 /home/taiga/logszaženite Circus in znova zaženite. Ponovno preverite stanje procesov Circus, tokrat boste zagotovo ugotovili, da je storitev delujoča.

Zdaj imamo Taigo uspešno nameščeno in zagnano. Preden ga lahko uporabimo, moramo izpostaviti namestitev s katerim koli produkcijskim spletnim strežnikom.

Namestite Nginx kot povratni proxy

Nginx bomo uporabili kot povratni proxy za serviranje aplikacije uporabnikom. Pridobili in namestili bomo tudi SSL certifikate podjetja Let's Encrypt.

Certbot je uradni odjemalec, ki izdaja potrdila za Let's Encrypt CA. Dodajte repozitorij Certbot PPA v sistem.

sudo add-apt-repository ppa:certbot/certbot
sudo apt update

Namestite Nginx in Certbot.

sudo apt -y install nginx certbot

Opomba : Če želite pridobiti potrdila od Let's Encrypt CA, morate zagotoviti, da je domena, za katero želite generirati potrdila, usmerjena proti strežniku. Če ne, naredite potrebne spremembe v zapisih DNS vaše domene in počakajte, da se DNS razširi, preden znova pošljete zahtevo za potrdilo. Certbot preveri avtoriteto domene, preden zagotovi potrdila.

Zdaj uporabite vgrajeni spletni strežnik v Certbot, da ustvarite potrdila za vašo domeno.

sudo certbot certonly --standalone -d taiga.example.com

Ustvarjena potrdila bodo verjetno shranjena v /etc/letsencrypt/live/taiga.example.com/imeniku. Potrdilo SSL bo ohranjeno kot fullchain.pem, zasebni ključ pa bo shranjen kot privkey.pem.

Potrdila Let's Encrypt potečejo v 90 dneh, zato je priporočljivo, da nastavite samodejno podaljšanje za potrdila s pomočjo opravil Cron. Cron je sistemska storitev, ki se uporablja za izvajanje občasnih opravil.

Odprite datoteko opravila cron.

sudo crontab -e

Dodajte naslednjo vrstico.

0 0 * * * /usr/bin/certbot renew --quiet

Zgornje opravilo cron se bo izvajalo vsak dan ob polnoči. Če potrdilo poteče, bo potrdila samodejno podaljšana.

Ustvari močan Diffie-Hellmanov parameter. Zagotavlja dodatno plast varnosti za izmenjavo podatkov med gostiteljem in strežnikom.

sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048 

Ustvarite nov blok strežnika Nginx, ki bo služil vmesniku Taiga.

sudo nano /etc/nginx/sites-available/taiga

Napolnite datoteko z naslednjim.

server {
    listen 80;
    server_name taiga.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name taiga.example.com;

    access_log /home/taiga/logs/nginx.access.log;
    error_log /home/taiga/logs/nginx.error.log;

    large_client_header_buffers 4 32k;
    client_max_body_size 50M;
    charset utf-8;

    index index.html;

    # Frontend
    location / {
        root /home/taiga/taiga-front-dist/dist/;
        try_files $uri $uri/ /index.html;
    }

    # Backend
    location /api {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8001/api;
        proxy_redirect off;
    }

    location /admin {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8001$request_uri;
        proxy_redirect off;
    }

    # Static files
    location /static {
        alias /home/taiga/taiga-back/static;
    }

    # Media files
    location /media {
        alias /home/taiga/taiga-back/media;
    }

     location /events {
        proxy_pass http://127.0.0.1:8888/events;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_connect_timeout 7d;
        proxy_send_timeout 7d;
        proxy_read_timeout 7d;
    }

    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    add_header Public-Key-Pins 'pin-sha256="klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY="; pin-sha256="633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q="; max-age=2592000; includeSubDomains';

    ssl on;
    ssl_certificate /etc/letsencrypt/live/taiga.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/taiga.example.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
    ssl_session_cache shared:SSL:10m;
    ssl_dhparam /etc/ssl/dhparam.pem;
    ssl_stapling on;
    ssl_stapling_verify on;

}

Ne pozabite spremeniti domain namein path to the SSL certificates. Omogočite virtualni gostitelj.

sudo ln -s /etc/nginx/sites-available/taiga /etc/nginx/sites-enabled/taiga

Zdaj lahko znova zaženete spletni strežnik Nginx in omogočite, da se samodejno zažene ob zagonu.

sudo systemctl restart nginx
sudo systemctl status nginx

Končno popravite lastništvo in dovoljenje za datoteke Taiga.

sudo chown -R taiga:taiga /home/taiga/
sudo chmod o+x /home/taiga/

Zaključek

Zdaj lahko dostopate do namestitve Taiga tako, da obiščete https://taiga.example.com. Prijavite se z začetnim skrbniškim računom z uporabniškim imenom " admin" in geslom " 123123". Vaša namestitev je zdaj pripravljena za uporabo v proizvodnji. Začnite z ustvarjanjem novega projekta ali oceno izdelka. Če že upravljate projekt na Githubu, Jira ali Trello, lahko projekte preprosto uvozite v Taigo z uvozniki .


Namestitev Microweberja na Ubuntu 16.04

Namestitev Microweberja na Ubuntu 16.04

Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal

Kako namestiti platformo za e-trgovino Sylius na Ubuntu 18.04 LTS

Kako namestiti platformo za e-trgovino Sylius na Ubuntu 18.04 LTS

Uporaba drugega sistema? Sylius je sodobna platforma za e-trgovino za PHP, ki temelji na Symfony Framework. Vir Sylius je na GitHubu. Ta vodnik bo wal

Kako namestiti Cezerin eCommerce na Ubuntu 18.04

Kako namestiti Cezerin eCommerce na Ubuntu 18.04

Cezerin je odprtokodna progresivna spletna aplikacija za e-trgovino, zgrajena z uporabo Reacta in Node.js. V tej vadnici se boste naučili, kako namestiti Cezerin za produkcijo

Kako namestiti aplikacijo Mailtrain Newsletter na Debian 9

Kako namestiti aplikacijo Mailtrain Newsletter na Debian 9

Uporaba drugega sistema? Mailtrain je odprtokodna aplikacija za glasila, ki sama gostuje, zgrajena na Node.js in MySQL/MariaDB. Vir Mailtrains je na GitHubu. ti

Kako namestiti aplikacijo Mailtrain Newsletter na Ubuntu 16.04

Kako namestiti aplikacijo Mailtrain Newsletter na Ubuntu 16.04

Uporaba drugega sistema? Mailtrain je odprtokodna aplikacija za glasila, ki sama gostuje, zgrajena na Node.js in MySQL/MariaDB. Vir Mailtrains je na GitHubu. ti

Kako namestiti osTicket na CentOS 7

Kako namestiti osTicket na CentOS 7

Uporaba drugega sistema? osTicket je odprtokodni sistem za izdajo vstopnic za podporo strankam. Izvorna koda osTicket je javno gostovana na Githubu. V tej vadnici

Kako namestiti Osclass na Ubuntu 18.04 LTS

Kako namestiti Osclass na Ubuntu 18.04 LTS

Uporaba drugega sistema? Osclass je odprtokodni projekt, ki vam omogoča preprosto ustvarjanje spletnega mesta za male oglase brez kakršnega koli tehničnega znanja. Njegov vir

Kako namestiti OpenMeetings na Ubuntu 16.04

Kako namestiti OpenMeetings na Ubuntu 16.04

Uporaba drugega sistema? Apache OpenMeetings je odprtokodna aplikacija za spletne konference. Napisana je v Javi in ​​podpira več strežnikov baz podatkov. jaz

Kako namestiti X-Cart 5 na Fedora 31

Kako namestiti X-Cart 5 na Fedora 31

Uporaba drugega sistema? X-Cart je izjemno prilagodljiva odprtokodna platforma za e-trgovino s številnimi funkcijami in integracijami. Izvorna koda X-Cart je hoste

Kako namestiti Zammad 2.0 na Ubuntu 16.04 LTS

Kako namestiti Zammad 2.0 na Ubuntu 16.04 LTS

Uporaba drugega sistema? Zammad je odprtokodni sistem za pomoč uporabnikom/prodaja vstopnic, zasnovan za ekipe za podporo strankam. Z Zammadom, storitev za stranke

Kako namestiti Matomo Analytics na Ubuntu 16.04

Kako namestiti Matomo Analytics na Ubuntu 16.04

Uporaba drugega sistema? Matomo (prej Piwik) je odprtokodna analitična platforma, odprta alternativa Google Analytics. Vir Matomo gostuje o

Namestitev Akauntinga v Ubuntu 16.04

Namestitev Akauntinga v Ubuntu 16.04

Uporaba drugega sistema? Akaunting je brezplačna, odprtokodna in spletna računovodska programska oprema, zasnovana za mala podjetja in samostojne delavce. Zgrajena je pametno

Kako namestiti Alfresco Community Edition na Ubuntu 16.04

Kako namestiti Alfresco Community Edition na Ubuntu 16.04

Uporaba drugega sistema? Alfresco Community Edition je odprtokodna različica storitev Alfresco Content Services. Napisana je v Javi in ​​uporablja PostgreSQL t

Kako namestiti Apache Zeppelin na Ubuntu 16.04

Kako namestiti Apache Zeppelin na Ubuntu 16.04

Uporaba drugega sistema? Apache Zeppelin je spletni odprtokodni prenosnik in orodje za sodelovanje za interaktivno vnos podatkov, odkrivanje, analitiko in

Kako namestiti InvoicePlane na Ubuntu 16.04

Kako namestiti InvoicePlane na Ubuntu 16.04

Uporaba drugega sistema? InvoicePlane je brezplačna in odprtokodna aplikacija za izdajanje računov. Njegovo izvorno kodo lahko najdete v tem repozitoriju Github. Ta vodnik

Kako namestiti Attendize na Ubuntu 18.04 LTS

Kako namestiti Attendize na Ubuntu 18.04 LTS

Uporaba drugega sistema? Attendize je odprtokodna platforma za prodajo vstopnic in upravljanje dogodkov, ki temelji na Laravel PHP Framework. Udeležite se izvorne trske

Kako namestiti Sentrifugo HRM na Ubuntu 16.04

Kako namestiti Sentrifugo HRM na Ubuntu 16.04

Uporaba drugega sistema? Sentrifugo HRM je brezplačna in odprtokodna aplikacija za upravljanje človeških virov (HRM). Je bogat s funkcijami in ga je enostavno konfigurirati

Kako namestiti aplikacijo Mailtrain Newsletter na Fedora 28

Kako namestiti aplikacijo Mailtrain Newsletter na Fedora 28

Uporaba drugega sistema? Mailtrain je odprtokodna aplikacija za glasila, ki sama gostuje, zgrajena na Node.js in MySQL/MariaDB. Vir Mailtrains je na GitHubu. ti

Kako namestiti Shopware CE na Ubuntu 18.04 LTS

Kako namestiti Shopware CE na Ubuntu 18.04 LTS

Uporaba drugega sistema? Shopware je odprtokodna platforma za e-trgovino za spletna podjetja. Izvorna koda Shopware gostuje na Githubu. Ta vodnik bo sho

Kako namestiti X-Cart 5 na CentOS 8

Kako namestiti X-Cart 5 na CentOS 8

Uporaba drugega sistema? X-Cart je izjemno prilagodljiva odprtokodna platforma za e-trgovino s številnimi funkcijami in integracijami. Izvorna koda X-Cart je hoste

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več