<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Erpnextv15-SSH-setup-241111</id>
	<title>Erpnextv15-SSH-setup-241111 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Erpnextv15-SSH-setup-241111"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Erpnextv15-SSH-setup-241111&amp;action=history"/>
	<updated>2026-06-17T09:49:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Erpnextv15-SSH-setup-241111&amp;diff=131&amp;oldid=prev</id>
		<title>Justinaquino: Imported from gi7b wiki</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Erpnextv15-SSH-setup-241111&amp;diff=131&amp;oldid=prev"/>
		<updated>2026-03-06T10:07:39Z</updated>

		<summary type="html">&lt;p&gt;Imported from gi7b wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;FORCETOC&lt;br /&gt;
= ERPNext v15 Deployment Guide: Portainer + ZeroTier + Nginx Proxy Manager =&lt;br /&gt;
&lt;br /&gt;
This tutorial covers setting up a production-ready ERPNext environment using a local &amp;#039;&amp;#039;&amp;#039;Host Machine&amp;#039;&amp;#039;&amp;#039; for processing power and a &amp;#039;&amp;#039;&amp;#039;Cloud VM&amp;#039;&amp;#039;&amp;#039; for public accessibility, connected securely via ZeroTier.&lt;br /&gt;
&lt;br /&gt;
== 1. Architectural Overview &amp;amp; Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;Cloud VM&amp;quot; (Gateway) ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Providers:&amp;#039;&amp;#039;&amp;#039; Contabo or Hetzner.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Cost:&amp;#039;&amp;#039;&amp;#039; ~4,000–6,000 PHP/year (Confirmed: €4.50–€6.00/mo).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Purpose:&amp;#039;&amp;#039;&amp;#039; Runs &amp;#039;&amp;#039;&amp;#039;Nginx Proxy Manager (NPM)&amp;#039;&amp;#039;&amp;#039; in Docker. It acts as the public face with a Static IP.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Network:&amp;#039;&amp;#039;&amp;#039; Connected to your ZeroTier network.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;Host Machine&amp;quot; (ERPNext Engine) ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Recommended Hardware:&amp;#039;&amp;#039;&amp;#039; Dell 3070 Micro (i5 8th Gen, 16GB RAM, 256GB SSD).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OS:&amp;#039;&amp;#039;&amp;#039; Ubuntu 24.04 LTS or Debian 12 (Clean install).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Network:&amp;#039;&amp;#039;&amp;#039; Connected to the same ZeroTier network.&lt;br /&gt;
&lt;br /&gt;
== 2. Host Machine: Remote Access &amp;amp; Preparation ==&lt;br /&gt;
&lt;br /&gt;
To operate the machine &amp;quot;headless&amp;quot; (without a monitor), you must set up SSH for command-line control and RDP for graphical access.&lt;br /&gt;
&lt;br /&gt;
=== A. SSH Access (Command Line) ===&lt;br /&gt;
SSH is the primary way to manage your server. From your Windows or Mac laptop, you can connect using a terminal.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the system&lt;br /&gt;
&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&lt;br /&gt;
&lt;br /&gt;
Install OpenSSH Server&lt;br /&gt;
&lt;br /&gt;
sudo apt install openssh-server -y&lt;br /&gt;
&lt;br /&gt;
Check if SSH is running&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status ssh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To connect from your main computer: &amp;lt;code&amp;gt;ssh username@your-machine-ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== B. Remote Desktop &amp;amp; Remmina (Graphical UI) ===&lt;br /&gt;
If you prefer a visual interface, use xRDP on the server and &amp;#039;&amp;#039;&amp;#039;Remmina&amp;#039;&amp;#039;&amp;#039; on your client machine (if using Linux) or Microsoft Remote Desktop (if using Windows).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;On the Host Machine (Server):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install xRDP&lt;br /&gt;
&lt;br /&gt;
sudo apt install xrdp -y&lt;br /&gt;
sudo systemctl enable --now xrdp&lt;br /&gt;
&lt;br /&gt;
Add xrdp to ssl-cert group to avoid permission issues&lt;br /&gt;
&lt;br /&gt;
sudo adduser xrdp ssl-cert&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;On your Client Machine (using Remmina):&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Open Remmina.&lt;br /&gt;
&lt;br /&gt;
Create a new connection profile.&lt;br /&gt;
&lt;br /&gt;
Select &amp;#039;&amp;#039;&amp;#039;RDP&amp;#039;&amp;#039;&amp;#039; as the protocol.&lt;br /&gt;
&lt;br /&gt;
Enter the IP address of the Host Machine.&lt;br /&gt;
&lt;br /&gt;
Set the color depth to &amp;quot;High Color (16bpp)&amp;quot; for better performance over ZeroTier.&lt;br /&gt;
&lt;br /&gt;
=== C. Screen for Persistent Sessions ===&lt;br /&gt;
Since ERPNext installation can take time, use &amp;#039;&amp;#039;screen&amp;#039;&amp;#039; so the process doesn&amp;#039;t die if your SSH connection drops.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install screen&lt;br /&gt;
&lt;br /&gt;
sudo apt install screen -y&lt;br /&gt;
&lt;br /&gt;
To start a session:&lt;br /&gt;
&lt;br /&gt;
screen -S erp-install&lt;br /&gt;
&lt;br /&gt;
To detach (if you want to close the window): press Ctrl+A, then D&lt;br /&gt;
&lt;br /&gt;
To re-attach later:&lt;br /&gt;
&lt;br /&gt;
screen -r erp-install&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. ZeroTier Networking ==&lt;br /&gt;
&lt;br /&gt;
Install ZeroTier on both the Cloud VM and the Local Host to create a virtual &amp;quot;local&amp;quot; bridge.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -s https://www.google.com/search?q=https://install.zerotier.com | sudo bash&lt;br /&gt;
sudo zerotier-one -q join [YOUR_NETWORK_ID]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Go to the ZeroTier Central dashboard and &amp;#039;&amp;#039;&amp;#039;Authorize&amp;#039;&amp;#039;&amp;#039; both devices. Note the Managed IP of your Local Host (e.g., 10.147.17.5).&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== 4. Install Docker &amp;amp; Portainer CE ==&lt;br /&gt;
&lt;br /&gt;
On your &amp;#039;&amp;#039;&amp;#039;Host Machine&amp;#039;&amp;#039;&amp;#039;, run the following to install the engine and the management UI.&lt;br /&gt;
&lt;br /&gt;
=== A. Docker Engine &amp;amp; Compose ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install dependencies&lt;br /&gt;
&lt;br /&gt;
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y&lt;br /&gt;
&lt;br /&gt;
Add Docker’s official GPG key&lt;br /&gt;
&lt;br /&gt;
sudo mkdir -p /etc/apt/keyrings&lt;br /&gt;
curl -fsSL https://www.google.com/search?q=https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg&lt;br /&gt;
&lt;br /&gt;
Set up the repository&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== B. Portainer CE Installation ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker volume create portainer_data&lt;br /&gt;
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/var/data portainer/portainer-ce:latest&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Access Portainer at:&amp;#039;&amp;#039; &amp;lt;code&amp;gt;https://[Your-Host-ZeroTier-IP]:9443&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Deploying the ERPNext Stack ==&lt;br /&gt;
&lt;br /&gt;
Log into Portainer.&lt;br /&gt;
&lt;br /&gt;
Go to &amp;#039;&amp;#039;&amp;#039;Stacks&amp;#039;&amp;#039;&amp;#039; &amp;gt; &amp;#039;&amp;#039;&amp;#039;Add stack&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Name it &amp;lt;code&amp;gt;erpnext-v15&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Paste the following configuration into the Web editor:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
version: &amp;quot;3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
backend:&lt;br /&gt;
image: frappe/erpnext:v15.51.1&lt;br /&gt;
restart: always&lt;br /&gt;
volumes:&lt;br /&gt;
- sites:/home/frappe/frappe-bench/sites&lt;br /&gt;
- logs:/home/frappe/frappe-bench/logs&lt;br /&gt;
&lt;br /&gt;
configurator:&lt;br /&gt;
image: frappe/erpnext:v15.51.1&lt;br /&gt;
restart: always&lt;br /&gt;
entrypoint:&lt;br /&gt;
- bash&lt;br /&gt;
- -c&lt;br /&gt;
command:&lt;br /&gt;
- &amp;gt;&lt;br /&gt;
ls -1 apps &amp;gt; sites/apps.txt;&lt;br /&gt;
bench set-config -g db_host $$DB_HOST;&lt;br /&gt;
bench set-config -gp db_port $$DB_PORT;&lt;br /&gt;
bench set-config -g redis_cache &amp;quot;redis://$$REDIS_CACHE&amp;quot;;&lt;br /&gt;
bench set-config -g redis_queue &amp;quot;redis://$$REDIS_QUEUE&amp;quot;;&lt;br /&gt;
bench set-config -g redis_socketio &amp;quot;redis://$$REDIS_QUEUE&amp;quot;;&lt;br /&gt;
bench set-config -gp socketio_port $$SOCKETIO_PORT;&lt;br /&gt;
environment:&lt;br /&gt;
DB_HOST: db&lt;br /&gt;
DB_PORT: &amp;quot;3306&amp;quot;&lt;br /&gt;
REDIS_CACHE: redis-cache:6379&lt;br /&gt;
REDIS_QUEUE: redis-queue:6379&lt;br /&gt;
SOCKETIO_PORT: &amp;quot;9000&amp;quot;&lt;br /&gt;
volumes:&lt;br /&gt;
- sites:/home/frappe/frappe-bench/sites&lt;br /&gt;
- logs:/home/frappe/frappe-bench/logs&lt;br /&gt;
&lt;br /&gt;
create-site:&lt;br /&gt;
image: frappe/erpnext:v15.51.1&lt;br /&gt;
restart: always&lt;br /&gt;
volumes:&lt;br /&gt;
- sites:/home/frappe/frappe-bench/sites&lt;br /&gt;
- logs:/home/frappe/frappe-bench/logs&lt;br /&gt;
entrypoint:&lt;br /&gt;
- bash&lt;br /&gt;
- -c&lt;br /&gt;
command:&lt;br /&gt;
- &amp;gt;&lt;br /&gt;
wait-for-it -t 120 db:3306;&lt;br /&gt;
wait-for-it -t 120 redis-cache:6379;&lt;br /&gt;
wait-for-it -t 120 redis-queue:6379;&lt;br /&gt;
export start=date +%s;&lt;br /&gt;
until [[ -n grep -hs ^ sites/common_site_config.json | jq -r &amp;quot;.db_host // empty&amp;quot; ]] &amp;amp;&amp;amp;&lt;br /&gt;
&lt;br /&gt;
[[ -n grep -hs ^ sites/common_site_config.json | jq -r &amp;quot;.redis_cache // empty&amp;quot; ]] &amp;amp;&amp;amp;&lt;br /&gt;
&lt;br /&gt;
[[ -n grep -hs ^ sites/common_site_config.json | jq -r &amp;quot;.redis_queue // empty&amp;quot; ]];&lt;br /&gt;
do&lt;br /&gt;
echo &amp;quot;Waiting for sites/common_site_config.json to be created&amp;quot;;&lt;br /&gt;
sleep 5;&lt;br /&gt;
if (( date +%s-start &amp;gt; 120 )); then&lt;br /&gt;
echo &amp;quot;could not find sites/common_site_config.json with required keys&amp;quot;;&lt;br /&gt;
exit 1&lt;br /&gt;
fi&lt;br /&gt;
done;&lt;br /&gt;
echo &amp;quot;sites/common_site_config.json found&amp;quot;;&lt;br /&gt;
bench new-site --no-mariadb-socket --admin-password=admin --db-root-password=admin --install-app erpnext --set-default erpnv15.comfac-it.net;&lt;br /&gt;
&lt;br /&gt;
db:&lt;br /&gt;
image: mariadb:10.6&lt;br /&gt;
healthcheck:&lt;br /&gt;
test: mysqladmin ping -h localhost --password=admin&lt;br /&gt;
interval: 1s&lt;br /&gt;
retries: 15&lt;br /&gt;
restart: always&lt;br /&gt;
command:&lt;br /&gt;
- --character-set-server=utf8mb4&lt;br /&gt;
- --collation-server=utf8mb4_unicode_ci&lt;br /&gt;
- --skip-character-set-client-handshake&lt;br /&gt;
- --skip-innodb-read-only-compressed&lt;br /&gt;
environment:&lt;br /&gt;
MYSQL_ROOT_PASSWORD: admin&lt;br /&gt;
volumes:&lt;br /&gt;
- db-data:/var/lib/mysql&lt;br /&gt;
&lt;br /&gt;
frontend:&lt;br /&gt;
image: frappe/erpnext:v15.51.1&lt;br /&gt;
depends_on:&lt;br /&gt;
- websocket&lt;br /&gt;
restart: always&lt;br /&gt;
command:&lt;br /&gt;
- nginx-entrypoint.sh&lt;br /&gt;
environment:&lt;br /&gt;
BACKEND: backend:8000&lt;br /&gt;
FRAPPE_SITE_NAME_HEADER: erpnv15.comfac-it.net&lt;br /&gt;
SOCKETIO: websocket:9000&lt;br /&gt;
UPSTREAM_REAL_IP_ADDRESS: 127.0.0.1&lt;br /&gt;
UPSTREAM_REAL_IP_HEADER: X-Forwarded-For&lt;br /&gt;
UPSTREAM_REAL_IP_RECURSIVE: &amp;quot;off&amp;quot;&lt;br /&gt;
PROXY_READ_TIMEOUT: 120&lt;br /&gt;
CLIENT_MAX_BODY_SIZE: 50m&lt;br /&gt;
volumes:&lt;br /&gt;
- sites:/home/frappe/frappe-bench/sites&lt;br /&gt;
- logs:/home/frappe/frappe-bench/logs&lt;br /&gt;
ports:&lt;br /&gt;
- &amp;quot;8715:8080&amp;quot;&lt;br /&gt;
&lt;br /&gt;
queue-long:&lt;br /&gt;
image: frappe/erpnext:v15.51.1&lt;br /&gt;
restart: always&lt;br /&gt;
command: [bench, worker, --queue, &amp;quot;long,default,short&amp;quot;]&lt;br /&gt;
volumes:&lt;br /&gt;
- sites:/home/frappe/frappe-bench/sites&lt;br /&gt;
- logs:/home/frappe/frappe-bench/logs&lt;br /&gt;
&lt;br /&gt;
queue-short:&lt;br /&gt;
image: frappe/erpnext:v15.51.1&lt;br /&gt;
restart: always&lt;br /&gt;
command: [bench, worker, --queue, &amp;quot;short,default&amp;quot;]&lt;br /&gt;
volumes:&lt;br /&gt;
- sites:/home/frappe/frappe-bench/sites&lt;br /&gt;
- logs:/home/frappe/frappe-bench/logs&lt;br /&gt;
&lt;br /&gt;
redis-queue:&lt;br /&gt;
image: redis:6.2-alpine&lt;br /&gt;
restart: always&lt;br /&gt;
volumes:&lt;br /&gt;
- redis-queue-data:/data&lt;br /&gt;
&lt;br /&gt;
redis-cache:&lt;br /&gt;
image: redis:6.2-alpine&lt;br /&gt;
restart: always&lt;br /&gt;
volumes:&lt;br /&gt;
- redis-cache-data:/data&lt;br /&gt;
&lt;br /&gt;
scheduler:&lt;br /&gt;
image: frappe/erpnext:v15.51.1&lt;br /&gt;
restart: always&lt;br /&gt;
command: [bench, schedule]&lt;br /&gt;
volumes:&lt;br /&gt;
- sites:/home/frappe/frappe-bench/sites&lt;br /&gt;
- logs:/home/frappe/frappe-bench/logs&lt;br /&gt;
&lt;br /&gt;
websocket:&lt;br /&gt;
image: frappe/erpnext:v15.51.1&lt;br /&gt;
restart: always&lt;br /&gt;
command: [node, /home/frappe/frappe-bench/apps/frappe/socketio.js]&lt;br /&gt;
volumes:&lt;br /&gt;
- sites:/home/frappe/frappe-bench/sites&lt;br /&gt;
- logs:/home/frappe/frappe-bench/logs&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
db-data:&lt;br /&gt;
redis-queue-data:&lt;br /&gt;
redis-cache-data:&lt;br /&gt;
sites:&lt;br /&gt;
logs:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Click &amp;#039;&amp;#039;&amp;#039;Deploy the stack&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== 6. Finalizing with Nginx Proxy Manager ==&lt;br /&gt;
&lt;br /&gt;
On your &amp;#039;&amp;#039;&amp;#039;Cloud VM&amp;#039;&amp;#039;&amp;#039; (where NPM is running):&lt;br /&gt;
&lt;br /&gt;
Add a new &amp;#039;&amp;#039;&amp;#039;Proxy Host&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Domain Names:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;erpnv15.comfac-it.net&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Scheme:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Forward IP:&amp;#039;&amp;#039;&amp;#039; Enter the &amp;#039;&amp;#039;&amp;#039;ZeroTier IP&amp;#039;&amp;#039;&amp;#039; of your Host Machine (e.g., &amp;lt;code&amp;gt;10.147.17.5&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Forward Port:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;8715&amp;lt;/code&amp;gt; (as defined in your frontend service).&lt;br /&gt;
&lt;br /&gt;
Enable &amp;#039;&amp;#039;&amp;#039;Websockets Support&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
In the &amp;#039;&amp;#039;&amp;#039;SSL&amp;#039;&amp;#039;&amp;#039; tab, request a new Let&amp;#039;s Encrypt Certificate.&lt;br /&gt;
&lt;br /&gt;
=== Important Notes ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Permissions:&amp;#039;&amp;#039;&amp;#039; If you run into folder permission issues on the host, ensure the &amp;lt;code&amp;gt;sites&amp;lt;/code&amp;gt; volume is owned by the user running docker or set to &amp;lt;code&amp;gt;775&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Site Creation:&amp;#039;&amp;#039;&amp;#039; The &amp;lt;code&amp;gt;create-site&amp;lt;/code&amp;gt; container will run once to initialize the database. Monitor its logs in Portainer to ensure the &amp;lt;code&amp;gt;--new-site&amp;lt;/code&amp;gt; command completes successfully.&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment Guides]]&lt;br /&gt;
[[Category:ERPNext]]&lt;/div&gt;</summary>
		<author><name>Justinaquino</name></author>
	</entry>
</feed>