Incus-Gitea/README.md

3.0 KiB

Gitea Incus Deployment Script

This script automates the deployment of Gitea using a single Incus container with Docker Compose. It provides a simple command-line interface to create a profile and install Gitea with PostgreSQL.

Table of Contents

Table of Contents

Prerequisites

  • Incus installed and configured on your system
  • Sudo or root access

Usage

Make the script executable:

chmod +x gitea.sh

Create Profile

Create an Incus profile for Gitea:

./gitea.sh profile [-c cpu] [-r ram]

Options:

  • -c cpu: Specify the number of CPUs (optional)
  • -r ram: Specify the amount of RAM in GB (optional)

If CPU or RAM is not specified, the default Incus values will be used.

Install Gitea

Install Gitea and PostgreSQL using Docker Compose:

./gitea.sh install [-p dbpassword]

Options:

  • -p dbpassword: Specify a custom database password (optional)

If no password is provided, a default password will be used.

Script Behavior

  1. The script enforces the correct order of operations:
    • Profile must be created before installation
  2. The script will create a network named "incusbr0" if it doesn't exist
  3. The root disk size for the Incus container is set to 20GB by default
  4. Gitea will be accessible on port 3000, and SSH access will be on port 2222
  5. The script creates a single Incus container with nesting enabled
  6. Docker and Docker Compose are installed inside the Incus container
  7. Gitea and PostgreSQL are deployed using Docker Compose within the Incus container

Notes

  • After installation, access Gitea through the web interface to complete the setup
  • The script provides the URL to access Gitea after installation
  • The latest versions of Gitea and PostgreSQL Docker images are used

Customization

You can modify the following variables at the top of the script to customize your deployment:

  • CONTAINER_NAME: Name of the Incus container
  • WEB_PORT: Port for accessing Gitea web interface
  • SSH_PORT: Port for SSH access
  • PROFILE_NAME: Name of the Incus profile
  • ROOT_DISK_SIZE: Size of the root disk for the container
  • NETWORK_NAME: Name of the Incus network
  • DB_USER: PostgreSQL database user for Gitea
  • DB_PASS: Default PostgreSQL database password (can be overridden during installation)

Troubleshooting

If you encounter any issues:

  1. Check the Incus container status: incus list
  2. View the container logs: incus exec gitea -- docker-compose logs
  3. Ensure all required ports are open and not in use by other services