Docker Deployment
Deploy S.I.M.P using Docker containers.
This guide explains how to deploy S.I.M.P using Docker containers for easy setup and isolation.
Prerequisites
- Docker installed
- (Optional) Docker Compose
Required Config and Volume Mounts
When running S.I.M.P in Docker, you must mount your configuration and persistent data into the container. Here is a recommended docker-compose
service definition:
Key Mounts:
./config.yaml:/app/config.yaml
— Mounts your config file into the container (required)../simp_app/logs:/app/logs
— Persists logs on the host../simp_app/storage:/app/storage
— Persists uploaded files on the host../simp_app/simp.db:/app/simp.db
— Persists the SQLite database on the host./etc/localtime:/etc/localtime:ro
— Syncs container time zone with the host (recommended).
Note: If you do not mount these volumes, your data and configuration will not persist between container restarts.
Option 1: Build the Docker Image Locally
1. Clone the Repository
2. Build the Docker Image
Build the image using the provided Dockerfile:
3. Setup Configuration
- Download the docker directory contents
- Choose a location on your system to host SIMP and place the files there
- Verify your directory structure matches the following:
4. Deploy with Docker Compose
Start the application:
Stop the application:
The application will be available at http://localhost:3000 by default. All data and configurations will persist in the mounted volumes.
Option 2: Use Pre-built Image from Docker Hub
For a quicker setup, you can use our pre-built image from Docker Hub:
1. Setup Configuration
- Download the docker directory contents
- Choose a location on your system to host SIMP and place the files there
- Verify your directory structure matches the following:
2. Deploy with Docker Compose
Start the application:
Stop the application:
The application will be available at http://localhost:3000 by default. All data and configurations will persist in the mounted volumes.
(Optional) Use Docker Compose
See Docker Compose Guide for a full-stack example.
Security & Tips
- Change all default secrets and passwords in
config.yaml
. - Use Docker secrets or environment variables for sensitive values in production.
- Mount volumes for persistent data.
- Use a reverse proxy (e.g., Nginx, Traefik) for HTTPS and domain routing.