From 7013f26eb2ed91784598cdd470a2a156fdc4709c Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Tue, 22 Apr 2025 17:12:36 +0200 Subject: [PATCH] corrected compose.yml and add podman docs --- compose.yml | 22 ++++++------- docker/doc.md | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 11 deletions(-) diff --git a/compose.yml b/compose.yml index 852ea849..49809abe 100644 --- a/compose.yml +++ b/compose.yml @@ -3,20 +3,20 @@ services: build: context: . dockerfile: ./docker/nginx/Dockerfile - container_name: vichan_frontend + container_name: vichan_web restart: unless-stopped - ports: - - "9090:80" -# - "9092:443" # optional for SSL - depends_on: - - db - - php volumes: - ./local-instances/${INSTANCE:-0}/www:/var/www/html - ./docker/nginx/vichan.conf:/etc/nginx/conf.d/default.conf - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf - ./docker/nginx/proxy.conf:/etc/nginx/conf.d/proxy.conf # - ./docker/nginx/ssl:/etc/nginx/ssl # optional For SSL + ports: + - "9090:80" +# - "9092:443" # optional for SSL + depends_on: + - db + - php links: - php @@ -71,6 +71,8 @@ services: image: mariadb:latest container_name: vichan_mariadb restart: unless-stopped + volumes: + - ./local-instances/${INSTANCE:-0}/db:/var/lib/mysql ports: - "9091:3306" environment: @@ -78,17 +80,15 @@ services: MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} - volumes: - - ./local-instances/${INSTANCE:-0}/db:/var/lib/mysql redis: image: redis:latest container_name: vichan_redis restart: unless-stopped - environment: - REDIS_PASSWORD: ${VICHAN_REDIS_PASSWORD} volumes: - ./local-instances/${INSTANCE:-0}/redis:/data + environment: + REDIS_PASSWORD: ${VICHAN_REDIS_PASSWORD} command: redis-server --requirepass ${VICHAN_REDIS_PASSWORD} healthcheck: test: ["CMD", "redis-cli", "-a", "${VICHAN_REDIS_PASSWORD}", "ping"] diff --git a/docker/doc.md b/docker/doc.md index c481757a..37565da7 100644 --- a/docker/doc.md +++ b/docker/doc.md @@ -61,3 +61,88 @@ Environment variables for the Docker Compose setup can be managed easily using a - Redis connection details - Secure login - Optional SSL certificate paths for nginx + + +# Vichan Podman Setup (Docker alternative) + +**Podman** offers a daemonless, rootless alternative for running Vichan in containers. Podman is API-compatible with Docker, allowing you to use the existing `compose.yml` file with minimal changes, while providing a more secure and lightweight environment. + +This tutorial is for administrators who prefer to avoid Docker, addressing security concerns and ensuring a robust Vichan install. + +--- + +## Why Podman? + +- **Daemonless**: Unlike Docker, Podman doesn’t require a central daemon, reducing the attack surface and eliminating the need for a privileged process. +- **Rootless**: Podman runs containers as a non-root user by default, improving security by limiting the impact of potential container escapes. +- **Lightweight**: Podman has a smaller footprint and is better suited for environments where simplicity and security are priorities. +- **Docker Compatibility**: Podman supports Docker Compose files via Podman Compose, making it easy to adapt the existing Vichan setup. + +Learn more at: https://podman.io +--- + +## Prerequisites + +**Install Podman** + +The official installation tutorial can be found at: https://podman.io/docs/installation + +**Configure the `.env` file** as described in the main setup guide (copy `.env.example` to `.env` and update passwords). + +--- + +## Steps to Run Vichan with Podman + +### 1. Prepare File Permissions + +Since Podman runs rootless, ensure the `local-instances/1/db` and `local-instances/1/www` directories are writable by your user: + +```bash +chmod -R u+rw local-instances/1 +``` + +If using SELinux (e.g., on Fedora), you may need to set the correct context: + +```bash +chcon -R -t container_file_t local-instances/1 +``` + +### 2. Start Containers with Podman Compose + +Run the following command from the root of the Vichan project directory to build and start all containers: + +```bash +podman-compose up -d --build +``` + +This command mirrors `docker compose up -d --build` but uses Podman’s container engine. + +### 3. Rebuild Specific Containers + +To rebuild only the PHP container (e.g., during development): + +```bash +podman-compose up -d --build php +``` + +--- + +## Managing Podman Containers + +**List running containers:** + +```bash +podman ps +``` + +**Stop all containers:** + +```bash +podman-compose down +``` + +**View logs for a specific service (e.g., PHP):** + +```bash +podman logs vichan_php +```