Self-Hosted LinuxPatch.com Docker Generator

Generate a Docker Compose configuration for self-hosting LinuxPatch.com

Configuration

Server Configuration

Database Configuration

Email Configuration

Security Configuration

Live Preview
services:
  linuxpatch-app:
    restart: unless-stopped
    pull_policy: always
    image: linuxpatch/appliance:latest
    expose:
      - 80
      - 443
    command: ["./web"]
    environment:
      - PREFIX_DIR=/app/data
      - CONFIG_FILE=/app/data/.env
      - DB_TYPE=mysql
      - DB_HOST=linuxpatch-db
      - DB_PORT=3306
      - DB_USERNAME=linuxpatch
      - DB_PASSWORD=kJjBZKsF4NUTK6y3nGihvkuq
      - DB_NAME=linuxpatch
      - SERVER_NAME=linuxpatch.example.com
      - SERVER_HOST=0.0.0.0
      - SERVER_PORT=80
      - REDIS_HOST=linuxpatch-redis
      - REDIS_PORT=6379
      - REDIS_DATABASE=0
      - SESSION_SECRET=ymYoZC8xSE00Iq9gTvTJMEVCWsS2E0Kh
      - TLS_ENABLED=0
      - TLS_CERT_FILE=/app/data/certs/server.crt
      - TLS_KEY_FILE=/app/data/certs/server.key
      - TLS_DOMAIN=linuxpatch.example.com
      - SMTP_HOST=smtp.example.com
      - SMTP_PORT=587
      - SMTP_USERNAME=user@example.com
      - SMTP_PASSWORD=password
      - SMTP_FROM_EMAIL=noreply@linuxpatch.com
      - ADMIN_USERNAME=admin@linuxpatch.local
      - ADMIN_PASSWORD=Owt3PBU4a37AnpP3XPwMo87pXCxrEA4p
    volumes:
      - ./data:/app/data
    depends_on:
      linuxpatch-db:
        condition: service_healthy
      linuxpatch-redis:
        condition: service_healthy
    networks:
      - linuxpatch-app-network
    ports:
      - 80:80
      - 443:443

  linuxpatch-db:
    restart: unless-stopped
    image: percona/percona-server:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=kJjBZKsF4NUTK6y3nGihvkuq
      - MYSQL_DATABASE=linuxpatch
      - MYSQL_USER=linuxpatch
      - MYSQL_PASSWORD=kJjBZKsF4NUTK6y3nGihvkuq
    volumes:
      - linuxpatch-mysql-data:/var/lib/mysql
    networks:
      - linuxpatch-app-network
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 10s
      retries: 10

  linuxpatch-redis:
    restart: unless-stopped
    image: redis:6
    command: redis-server
    volumes:
      - linuxpatch-redis-data:/data
    networks:
      - linuxpatch-app-network
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 10s
      retries: 10

volumes:
  linuxpatch-mysql-data:
    driver: local
  linuxpatch-redis-data:
    driver: local

networks:
  linuxpatch-app-network:
    driver: bridge