yamtrack/README.md
GeorgeWebberley c35aa8e264
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Added README
2026-02-02 21:22:42 +01:00

53 lines
1.9 KiB
Markdown

# Yamtrack Deployment
This repository contains the deployment configuration for **Yamtrack**, a self-hosted analytics or tracking utility. It utilizes a Redis backend for high-performance data handling.
## 🏗️ Architecture Overview
* **Service**: Yamtrack (Main Application)
* **Backend**: Redis (Alpine-based)
* **Networking**: Integrated into the `web_traffic` external network for reverse proxy access.
* **CI/CD**: Automated deployment via Woodpecker CI on every push to the `main` branch.
## 📂 Repository Structure
* `docker-compose.yaml`: Orchestrates the Yamtrack application and its Redis dependency.
* `.woodpecker.yaml`: Handles automated deployment to the host server.
* `.env.example`: Template for required secrets and URL configuration.
* `.gitignore`: Ensures the active `.env` and local `./data` directory remain untracked.
## 🚀 Getting Started
### 1. Environment Configuration
Yamtrack requires specific environment variables to function correctly. Create your local `.env` file from the template:
```bash
cp .env.example .env
```
Edit the .env file with the following variables:
- SECRET: A unique, random string used for application security.
- URLS: The public-facing domain(s) where the application is hosted (e.g., https://stats.georgew.dev).
### 2. Manual Deployment
Ensure the web_traffic network exists:
```bash
docker network create web_traffic
docker compose up -d
```
## 🔄 CI/CD Workflow
The Woodpecker CI pipeline triggers on every push to main. It:
- Syncs the repository configuration to the server directory.
- Triggers a docker compose up -d with --pull always and --force-recreate.
- Ensures the Redis container is healthy and available before the application starts.
## 💾 Persistence
- Application Data: Mapped to the ./data directory.
- Cache: Managed by the internal yamtrack-redis container.
## ⚙️ Environment Details
- Timezone: Europe/Copenhagen