|
Cat Feeder
1.0.0
The Cat feeder project
|
This repository contains the backend for the Cat Feeder project and helper files to run it via Docker Compose.
This README explains how to start the compose stack, what components are required, which environment files the project uses, and provides simple examples for Linux and Windows.
Docker Compose v2 (integrated as docker compose) or docker-compose (v1) fallback
Optional but recommended:
docker group to avoid using sudo for Docker commands (Linux).start_compose.sh — POSIX shell script to start/stop the compose stack (Linux/macOS). Now contains Doxygen-style comments.start_compose.bat — Windows batch equivalent. Also contains Doxygen-style comments.docker/dockerfile.backend — Dockerfile used to build the backend image; now annotated with Doxygen-style header comments..env and sample.env — environment variables used by the server and the image build. Note: if the compose manifest references .env (or any other env files), Docker Compose expects them to exist and will fail if a referenced file is missing.docker/.db.env, docker/.redis.env — service-specific env files referenced by the compose config. If the compose manifest references these files and they are missing, docker compose may fail to start the stack.The repository includes Doxygen generation scripts and assets in doxygen_generation/ (this folder contains the Dockerfile, Doxyfile and helper scripts used to produce the documentation). The generated HTML output will be written to documentation/ by the generator. Handwritten/manual docs are maintained in manual_documentation/.
See manual_documentation/QUICK_START.md for the full quickstart. Key steps summarized here:
LOG_SERVER_DATA, LOG_PATH, LOG_DATA — logging configuration
When running with Docker Compose, the compose file will pick up .env from the repository root and any additional env files referenced by the compose manifest (for example docker/.db.env or docker/.redis.env). If a referenced env file is missing, Docker Compose may fail. The included start_compose.sh script will create reasonable default env files (.env, docker/.db.env, docker/.redis.env) when first run to help avoid this problem.
Choose the platform you're on.
Linux / macOS (recommended):
docker group.This script will:
.env, docker/.db.env, docker/.redis.env if missingdocker/db/data and docker/redis/data directories if missingdocker compose -f ./docker-compose.yaml down thenrun docker compose -f ./docker-compose.yaml up --build
If your system does not allow running docker without sudo, the script will try to use sudo transparently and prompt for a password if needed.
Windows (PowerShell / CMD):
Run from repository root in a Command Prompt:
The batch file mirrors the Linux script’s behavior, checks for Docker availability and launches the compose stack. On Windows, administrative privileges may be required depending on your Docker Desktop configuration.
docker/dockerfile.backend contains the image build logic. It builds a Python virtual environment inside the image, installs dependencies from requirements.txt, and creates a small launcher script to run the server.start_compose.sh, start_compose.bat, and the Dockerfile now include Doxygen-style headers to make it easier to generate documentation or scan file metadata.Permission denied while accessing Docker? Add your Linux user to the docker group:
docker-compose separately.PORT in .env and the container binding needs updating, verify docker-compose.yaml port mappings match your desired host port.Please visit CONTRIBUTING.md and COMMIT_CONVENTION.md to check the rules and norms of the repository.