Deployment
Plugwerk can be deployed in several ways. Choose the option that best fits your infrastructure.
Docker Compose (Recommended)
Section titled “Docker Compose (Recommended)”The simplest way to run Plugwerk with PostgreSQL:
services: postgres: image: postgres:18-alpine environment: POSTGRES_DB: plugwerk POSTGRES_USER: plugwerk POSTGRES_PASSWORD: plugwerk volumes: - pgdata:/var/lib/postgresql/data
plugwerk: image: plugwerk/plugwerk-server:latest ports: - "8080:8080" environment: PLUGWERK_DB_URL: jdbc:postgresql://postgres:5432/plugwerk PLUGWERK_DB_USERNAME: plugwerk PLUGWERK_DB_PASSWORD: plugwerk PLUGWERK_STORAGE_ROOT: /data/artifacts PLUGWERK_JWT_SECRET: your-secret-key-min-32-characters-long PLUGWERK_ENCRYPTION_KEY: exactly16charss JAVA_OPTS: "-Xms256m -Xmx512m" depends_on: - postgres
volumes: pgdata:Standalone Docker
Section titled “Standalone Docker”docker run -d \ --name plugwerk \ -p 8080:8080 \ -e PLUGWERK_DB_URL=jdbc:postgresql://host.docker.internal:5432/plugwerk \ -e PLUGWERK_DB_USERNAME=plugwerk \ -e PLUGWERK_DB_PASSWORD=plugwerk \ -e PLUGWERK_STORAGE_ROOT=/data/artifacts \ -e PLUGWERK_JWT_SECRET=your-secret-key-min-32-characters-long \ -e PLUGWERK_ENCRYPTION_KEY=exactly16charss \ plugwerk/plugwerk-server:latestStart Script (Linux/macOS)
Section titled “Start Script (Linux/macOS)”Download the distribution ZIP from GitHub Releases and extract it:
unzip plugwerk-server-*.zipcd plugwerk-server-*/chmod +x start.sh./start.shDirect JAR Execution
Section titled “Direct JAR Execution”java -jar plugwerk-server-backend-*.jarEnvironment Variables
Section titled “Environment Variables”Customize the JVM with JAVA_OPTS:
export JAVA_OPTS="-Xms512m -Xmx1g -XX:+UseZGC"./start.shSee Configuration for the full environment variable reference.