todolist-proto/DEPLOYMENT.md

3.1 KiB

Deployment to Gitea Package Registry

This document describes how to deploy the Docker images to the Gitea package registry using the Python deployment script.

Prerequisites

  1. Python 3.x installed on your system
  2. Access to Gitea server at https://brokkr.robotico.dev/
  3. A personal access token with package write permissions
  4. Docker and Docker Compose installed

Setup

1. Install Python Dependencies

pip install -r requirements.txt

This installs:

  • python-dotenv - For loading environment variables from .env file

2. Create .env file

Create a .env file in the project root (this file is git-ignored):

PUBLISH_TOKEN=your_gitea_personal_access_token_here

Important: Never commit the .env file to version control!

3. Get Your Gitea Token

  1. Log in to https://brokkr.robotico.dev/
  2. Go to User Settings → Applications
  3. Create a new token with "write:package" permission
  4. Copy the token and add it to your .env file

Deployment

Run the Python deployment script:

python deploy.py

Or on systems where Python 3 is not the default:

python3 deploy.py

The script will:

  1. Load the PUBLISH_TOKEN from .env file
  2. Build both frontend and backend Docker images using docker-compose
  3. Tag them for the Gitea registry
  4. Log in to the Gitea Docker registry
  5. Push both images to the registry

What the Script Does

The Python deployment script (deploy.py) performs the following steps:

  1. Loads the PUBLISH_TOKEN from .env file using python-dotenv
  2. Validates that the token exists
  3. Builds both frontend and backend Docker images via docker-compose build
  4. Tags them for the Gitea registry:
    • https://brokkr.robotico.dev/dalex/dalex-todo-backend:latest
    • https://brokkr.robotico.dev/dalex/dalex-todo-frontend:latest
  5. Logs in to the Gitea Docker registry
  6. Pushes both images to the registry
  7. Displays success message with package URLs

Using the Deployed Images

After deployment, you can pull and use the images from the Gitea registry:

docker pull https://brokkr.robotico.dev/dalex/dalex-todo-backend:latest
docker pull https://brokkr.robotico.dev/dalex/dalex-todo-frontend:latest

Or update your docker-compose.yml to use the registry images instead of building locally:

services:
  backend:
    image: https://brokkr.robotico.dev/dalex/dalex-todo-backend:latest
    # Remove the 'build' section
    
  frontend:
    image: https://brokkr.robotico.dev/dalex/dalex-todo-frontend:latest
    # Remove the 'build' section

Troubleshooting

Authentication Failed

  • Verify your token is correct in the .env file
  • Check that the token has "write:package" permission
  • Ensure the token hasn't expired

Build Failed

  • Run docker-compose build manually to see detailed error messages
  • Check that all source files are present and correct

Push Failed

  • Verify you have write access to the dalex organization/user on Gitea
  • Check network connectivity to https://brokkr.robotico.dev/
  • Ensure the registry URL is correct

Package Registry Location

The packages will be available at: https://brokkr.robotico.dev/dalex/-/packages