Forudsætninger
Installer udviklingsværktøjer
Installer MariaDB Server
Installer Nginx, Node.js og Redis
Installer PDF Converter
Installer bænk
Installer ERPNext ved hjælp af Bench
Setup Supervisor og Nginx
Konklusion
ERP eller Enterprise Resource Planning er en virksomhedsapplikationspakke, der bruges til at styre kerneforretningsprocesser. ERPNext er en gratis og open source, selv-hostet ERP-applikation skrevet i Python. Den bruger Node.js til frontend og MariaDB til at gemme sine data. ERPNext giver en brugervenlig webgrænseflade, der giver virksomheder mulighed for at administrere daglige opgaver. Den indeholder moduler til regnskab, CRM, HRM, produktion, POS, projektledelse, indkøb, salgsstyring, lagerstyring og meget mere. ERPNext kan bruges til at styre forskellige industrier såsom tjenesteudbydere, fremstilling, detailhandel og skoler.
Forudsætninger
Bemærk: Til denne vejledning vil vi bruge erp.example.comsom domænenavnet, der pegede på serveren. Sørg for at erstatte alle forekomster af erp.example.commed dit faktiske domænenavn .
Før vi begynder, skal du sørge for, at din server er opdateret.
sudo apt update
sudo apt -y upgrade
ERPNext har brug for Python version 2.7 for at fungere. Installer Python 2.7.
sudo apt -y install python-minimal
Du burde være i stand til at verificere dens version.
python -V
Du vil se følgende output.
user@vultr:~$ python -V
Python 2.7.13
Installer et par flere afhængigheder.
sudo apt -y install git build-essential python-setuptools python-dev libffi-dev libssl-dev
Installer Pythons pipværktøj. Pip er afhængighedsmanageren for Python-pakker.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Sørg for, at du har den seneste version af pipog setuptools.
sudo pip install --upgrade pip setuptools
Installer Ansible ved hjælp af Pip. Ansible automatiserer softwareprovisionering, konfigurationsstyring og applikationsimplementering.
sudo pip install ansible
Installer MariaDB Server
Tilføj MariaDB-lageret til systemet.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/ubuntu xenial main'
Installer MariaDB.
sudo apt update
sudo apt -y install mariadb-server libmysqlclient-dev
Angiv en stærk adgangskode til MariaDB root-brugeren, når du bliver bedt om det.
Barracuda-lagringsmotoren er påkrævet til oprettelse af ERPNext-databaser, så du bliver nødt til at konfigurere MariaDB til at bruge Barracuda-lagringsmotoren. Rediger standard MariaDB-konfigurationsfilen my.cnf.
sudo nano /etc/mysql/my.cnf
Tilføj følgende linjer under [mysqld]linjen.
innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Tilføj også følgende linje under [mysql]linjen.
default-character-set = utf8mb4
Genstart MariaDB og aktiver den til automatisk at starte ved opstart.
sudo systemctl restart mariadb
sudo systemctl enable mariadb
Før du konfigurerer databasen, skal du sikre MariaDB. Du kan sikre det ved at køre mysql_secure_installationscriptet.
sudo mysql_secure_installation
Du bliver bedt om den aktuelle MariaDB root-adgangskode. Angiv den adgangskode, du har angivet under installationen. Du bliver spurgt, om du ønsker at ændre den eksisterende adgangskode for root-brugeren på din MariaDB-server. Du kan springe over at angive en ny adgangskode, da du allerede har angivet en stærk adgangskode under installationen. Svar "Y" på alle de andre spørgsmål, der stilles.
Installer Nginx, Node.js og Redis
Tilføj Nodesource-lageret til Node.js 8.x.
sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
Installer Nginx, Node.js og Redis.
sudo apt -y install nginx nodejs redis-server
Start Nginx og aktiver den til at starte ved opstart.
sudo systemctl start nginx
sudo systemctl enable nginx
Start Redis og aktiver den til at starte ved opstart.
sudo systemctl start redis-server
sudo systemctl enable redis-server
Installer PDF Converter
Det wkhtmltopdfprogram er en kommandolinje værktøj, der konverterer HTML til PDF ved hjælp af QT Webkit rendering engine. Installer de nødvendige afhængigheder.
sudo apt -y install libxrender1 libxext6 xfonts-75dpi xfonts-base
Download den seneste version af wkhtmltopdf.
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
Uddrag arkivet.
sudo tar -xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -C /opt
Ovenstående kommando vil udpakke arkivet til /opt/wkhtmltox. Opret et softlink, så wkhtmltopdfog wkhtmltoimagekan udføres globalt som en kommando.
sudo ln -s /opt/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo ln -s /opt/wkhtmltox/bin/wkhtmltoimage /usr/bin/wkhtmltoimage
Du kan nu løbe for wkhtmltopdf -Vat tjekke om det virker, du vil se dette.
user@vultr:~$ wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)
På dette tidspunkt har vi alle de nødvendige afhængigheder installeret. Du kan nu fortsætte med at installere Bench.
Installer bænk
Bencher et kommandolinjeværktøj leveret af Frappe til at installere og administrere ERPNext-applikationen på et Unix-baseret system til både udviklings- og produktionsformål. Bench kan også oprette og administrere Nginx og supervisor-konfigurationer.
Opret en ny bruger til at køre Bench-processer i det isolerede miljø.
sudo adduser bench --home /opt/bench
Giv brugeren sudotilladelser bench.
sudo usermod -aG sudo bench
Log ind som den nyoprettede benchbruger.
sudo su - bench
Klon Bench-depotet i /opt/bench.
cd /opt/bench
git clone https://github.com/frappe/bench bench-repo
Installer bænk ved hjælp af pip.
sudo pip install -e bench-repo
Når Bench er installeret, fortsæt videre for at installere ERPNext ved hjælp af Bench.
Installer ERPNext ved hjælp af Bench
Initialiser en bænk-mappe med frappe framework installeret. For at holde alt ryddeligt arbejder vi under /opt/benchmappen. Bench vil også opsætte regelmæssige sikkerhedskopier og automatiske opdateringer en gang om dagen.
cd /opt/bench
bench init erpnext && cd erpnext
Opret en ny Frappe-side.
bench new-site erp.example.com
Ovenstående kommando vil bede dig om MySQL root-adgangskoden. Angiv adgangskoden, som du tidligere har indstillet til MySQL root-brugeren. Den vil også bede dig om at indstille en ny adgangskode til administratorkontoen. Du skal bruge denne adgangskode senere for at logge ind på administratordashboardet .
Download ERPNext-installationsfiler fra det eksterne git-lager ved hjælp af Bench.
bench get-app erpnext https://github.com/frappe/erpnext
Installer ERPNext på dit nyoprettede websted.
bench --site erp.example.com install-app erpnext
Du kan starte applikationen med det samme for at kontrollere, om applikationen er installeret korrekt.
bench start
Du bør dog stoppe eksekveringen og fortsætte med at konfigurere applikationen til produktionsbrug.
Setup Supervisor og Nginx
Som standard lytter ERPNext-applikationen på port 8000, ikke standard-HTTP-porten 80. Det anbefales heller ikke at køre den indbyggede webserver til produktionsbrug, da vi vil udsætte serveren for verden. Du bør bruge en produktionswebserver som en omvendt proxy, såsom Apache eller Nginx. Vi vil bruge Nginx som en omvendt proxy, da den automatisk kan konfigureres ved hjælp af Bench. Bench kan automatisk generere og installere konfigurationen i henhold til ERPNext-opsætningen.
Selvom vi kan starte applikationen ved at bruge 'bench start'-kommandoen, vil udførelsen af ERPNext stoppe, så snart du lukker terminalen. For at overvinde dette problem bør du bruge Supervisor, som er meget nyttig til at køre applikationen kontinuerligt i et produktionsmiljø. Supervisor er et proceskontrolsystem, der gør dig i stand til at overvåge og kontrollere en række processer på Linux-operativsystemer. Når Supervisor er konfigureret, starter den automatisk programmet ved opstart samt ved fejl. Bench kan automatisk konfigurere Supervisor til ERPNext-applikationen.
Installer Supervisor.
sudo apt -y install supervisor
Start Supervisor og aktiver den til automatisk at starte ved opstart.
sudo systemctl start supervisor
sudo systemctl enable supervisor
Opstillingsbænk til produktionsbrug.
sudo bench setup production bench
Ovenstående kommando kan bede dig, før du erstatter den eksisterende Supervisor-standardkonfigurationsfil med en ny. Vælg yat fortsætte. Bench tilføjer en række processer til Supervisor-konfigurationsfilen. Ovenstående kommando vil også spørge dig, om du ønsker at erstatte den nuværende Nginx-konfiguration med en ny. Indtast for yat fortsætte. Når Bench er færdig med at installere konfigurationen, skal du give andre brugere mulighed for at udføre filerne i dit hjemmebibliotek for Bench-brugeren.
chmod o+x /opt/bench/
Du kan nu få adgang til siden på http://erp.example.com.
Du kan kontrollere status for processerne ved at køre.
sudo supervisorctl status all
Du bør se følgende output.
bench@vultr:~/erpnext$ sudo supervisorctl status all
erpnext-redis:erpnext-redis-cache RUNNING pid 13852, uptime 0:00:54
erpnext-redis:erpnext-redis-queue RUNNING pid 13851, uptime 0:00:54
erpnext-redis:erpnext-redis-socketio RUNNING pid 13853, uptime 0:00:54
erpnext-web:erpnext-frappe-web RUNNING pid 13856, uptime 0:00:54
erpnext-web:erpnext-node-socketio RUNNING pid 13855, uptime 0:00:54
erpnext-workers:erpnext-frappe-default-worker-0 RUNNING pid 13862, uptime 0:00:54
erpnext-workers:erpnext-frappe-long-worker-0 RUNNING pid 13870, uptime 0:00:54
erpnext-workers:erpnext-frappe-schedule RUNNING pid 13869, uptime 0:00:54
erpnext-workers:erpnext-frappe-short-worker-0 RUNNING pid 13875, uptime 0:00:54
For at stoppe alle ERPNext-processer.
sudo supervisorctl stop all
For at starte alle ERPNext-processer.
sudo supervisorctl start all
Opsætning af SSL ved hjælp af Let's Encrypt
Let's Encrypt leverer gratis SSL-certifikater til brugerne. SSL kan installeres manuelt eller automatisk gennem Bench. Bench kan automatisk installere Let's Encrypt-klienten og få certifikaterne. Derudover opdaterer den automatisk Nginx-konfigurationen for at bruge certifikaterne.
Domænenavnet, som du bruger til at få certifikaterne fra Let's Encrypt CA, skal pege mod serveren. Klienten verificerer domæneautoriteten før udstedelse af certifikaterne .
Aktiver DNS multi-tenancy for ERPNext-applikationen.
bench config dns_multitenant on
Kør Bench for at konfigurere Let's Encrypt på dit websted.
sudo bench setup lets-encrypt erp.example.com
Under udførelsen af scriptet vil Let's Encrypt-klienten bede dig om midlertidigt at stoppe Nginx-webserveren. Det vil automatisk installere de nødvendige pakker og Let's Encrypt-klienten. Klienten vil bede dig om din e-mailadresse. Du skal også acceptere vilkårene og betingelserne. Når certifikaterne er blevet genereret, vil Bench også generere den nye konfiguration til Nginx, som bruger SSL-certifikaterne. Du bliver spurgt, før du udskifter den eksisterende konfiguration. Bench opretter også en crontabpost for automatisk at forny certifikaterne hver måned.
Til sidst skal du aktivere skemalæggeren til automatisk at køre de planlagte opgaver.
bench enable-scheduler
Du bør se dette output.
bench@vultr:~/erpnext$ bench enable-scheduler
Enabled for erp.example.com
Konklusion
Når processen er afsluttet, kan du få adgang til din ansøgning på https://erp.example.com. Log ind med det brugernavn Administratorog den adgangskode, du har angivet under installationen. Du vil blive ført til skrivebordet, hvor du skal give oplysninger for at indstille ERPNext ERP i overensstemmelse med din virksomhed. Du kan nu bruge applikationen til at administrere din virksomhed.
Tillykke, du har en fuldt fungerende ERPNext-applikation installeret på din Ubuntu 17.04-server.