S.I.M.P LogoS.I.M.P

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


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:

services:
  simp:
    container_name: simp
    image: simp:latest
    ports:
      - 3000:3000 # Change ports mapped to host
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./config.yaml:/app/config.yaml
      - ./simp_app/logs:/app/logs
      - ./simp_app/storage:/app/storage
      - ./simp_app/simp.db:/app/simp.db
    depends_on:
      - simp-redis # Optional dependency, comment out if not using Redis
 
  # Optional Redis service - comment out if not needed
  simp-redis:
    container_name: simp-redis
    image: redis:latest
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    command: redis-server --appendonly yes
 
volumes:
  redis_data:

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

git clone https://github.com/DanonekTM/SIMP.git && cd SIMP

2. Build the Docker Image

Build the image using the provided Dockerfile:

docker build -f docker/Dockerfile -t simp .

3. Setup Configuration

  1. Download the docker directory contents
  2. Choose a location on your system to host SIMP and place the files there
  3. Verify your directory structure matches the following:
.
├── Dockerfile
├── README.md
├── config.yaml
├── docker-compose.yml
└── simp_app/

4. Deploy with Docker Compose

Start the application:

docker compose up -d

Stop the application:

docker compose down

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:

docker pull danonektm/simp:latest

1. Setup Configuration

  1. Download the docker directory contents
  2. Choose a location on your system to host SIMP and place the files there
  3. Verify your directory structure matches the following:
.
├── Dockerfile
├── README.md
├── config.yaml
├── docker-compose.yml
└── simp_app/

2. Deploy with Docker Compose

Start the application:

docker compose up -d

Stop the application:

docker compose down

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.