2.4 KiB
Penpot Infrastructure Setup
This repository contains the infrastructure configuration to run Penpot via Docker Compose.
Step-by-Step Deployment Guide
Step A: Clone the Repository
First, bring the repository to your local server and navigate into the directory.
git clone http://git.amiirkhl.ir/interanet/penpot-deployment.git
cd penpot-deployment
Step B: SSL/TLS Certificate Configuration
Caddy handles the reverse proxy and SSL routing. Since the actual certificate files are ignored in version control for security, you must provide them manually before starting the containers.
Navigate to the certificates directory:
cd config/certs
You will see sample files (fullchain.pem.sample and private.key.sample). You need to place your actual SSL certificates here and name them exactly as follows:
fullchain.pem(Your combined certificate file)private.key(Your private key file)
You can create these files and paste your certificate contents into them:
nano fullchain.pem
nano private.key
Ensure the permissions on these files allow Docker to read them (e.g., chmod 644).
Step C: Environment Variables and Dynamic Access
Return to the root of the project and set up your environment variables.
cd ../../
cp .env.example .env
nano .env
Inside your .env file, alongside your secret keys, passwords, and SMTP details, you must define your Caddy routing variables. You can dynamically toggle between Domain-only access and Domain+IP access without changing the Caddyfile.
For Domain-only access (Standard):
CADDY_SITE_ADDRESS=https://design.amiirkhl.ir
CADDY_HTTP_ADDRESSES=http://caddy
For Domain and Direct IP access (Useful for DNS troubleshooting):
CADDY_SITE_ADDRESS=https://design.amiirkhl.ir
CADDY_HTTP_ADDRESSES=http://YOUR_SERVER_IP, http://caddy
(Whenever you change these variables in the future to toggle IP access, simply run docker compose up -d caddy to apply the changes).
Step D: Start the Services
Once your certificates are in place and your .env is configured, launch the stack in detached mode.
docker compose up -d
Step E: Create the First Admin User
Once the containers are running and the database has initialized, you need to create your main admin account via the command line.
docker exec -it penpot-backend ./manage.sh create-profile