# Podcastrr - Forgejo Integration Guide This guide explains how to set up and use Podcastrr with Forgejo for CI/CD and container registry integration. ## Prerequisites - A Forgejo instance with: - CI/CD capabilities (Drone integration) - Container registry enabled - Docker and Docker Compose installed on your local machine - Git installed on your local machine ## Setup ### 1. Repository Setup 1. Create a new repository in your Forgejo instance 2. Push this codebase to your new repository: ```bash git init git add . git commit -m "Initial commit" git remote add origin https://your-forgejo-instance.com/username/podcastrr.git git push -u origin main ``` ### 2. Secrets Configuration In your Forgejo repository settings, add the following secrets: - `docker_username`: Your Forgejo username or container registry username - `docker_password`: Your Forgejo password or container registry password - `webhook_url` (optional): URL for build notifications ### 3. Environment Variables Configure the following environment variables in your Forgejo CI/CD settings: - `DRONE_REGISTRY`: Your Forgejo container registry URL (e.g., `registry.your-forgejo-instance.com`) ## CI/CD Pipeline The included `.drone.yml` file defines a CI/CD pipeline that: 1. Runs tests on every push and pull request 2. Builds and pushes a Docker image to your container registry on pushes to the main branch 3. Sends notifications about build status (if configured) ## Using the Docker Image ### Pulling from Forgejo Container Registry ```bash docker pull registry.your-forgejo-instance.com/username/podcastrr:latest ``` ### Running with Docker Compose 1. Create a `.env` file with your configuration (see `.env.example`) 2. Update the `docker-compose.yml` file to use your image: ```yaml version: '3.8' services: app: image: registry.your-forgejo-instance.com/username/podcastrr:latest ports: - "5000:5000" volumes: - ./downloads:/app/downloads - ./instance:/app/instance environment: - FLASK_ENV=production - SECRET_KEY=change_this_to_a_secure_random_string - DATABASE_URI=sqlite:///instance/podcastrr.db - DOWNLOAD_PATH=/app/downloads - LOG_LEVEL=INFO restart: unless-stopped ``` 3. Run the application: ```bash docker-compose up -d ``` ## Building Locally If you want to build the Docker image locally: ```bash docker build -t podcastrr:local . ``` ## Troubleshooting - **CI/CD Pipeline Failures**: Check the build logs in Forgejo for detailed error messages - **Container Registry Issues**: Ensure your Forgejo instance has the container registry enabled and you have proper permissions - **Docker Image Not Found**: Verify the image name and tag in your docker-compose.yml file ## Additional Resources - [Forgejo Documentation](https://forgejo.org/docs/) - [Drone CI Documentation](https://docs.drone.io/) - [Docker Documentation](https://docs.docker.com/)