Incus-Gitea/README.md

102 lines
3.0 KiB
Markdown

# 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
- [Prerequisites](#prerequisites)
- [Usage](#usage)
- [Create Profile](#create-profile)
- [Install Gitea](#install-gitea)
- [Script Behavior](#script-behavior)
- [Notes](#notes)
- [Customization](#customization)
- [Troubleshooting](#troubleshooting)
## Table of Contents
- [Prerequisites](#prerequisites)
- [Usage](#usage)
- [Create Profile](#create-profile)
- [Install Gitea](#install-gitea)
- [Secure Configuration](#secure-configuration)
- [Script Behavior](#script-behavior)
- [Notes](#notes)
- [Customization](#customization)
- [Troubleshooting](#troubleshooting)
## Prerequisites
- Incus installed and configured on your system
- Sudo or root access
## Usage
Make the script executable:
```bash
chmod +x gitea.sh
```
### Create Profile
Create an Incus profile for Gitea:
```bash
./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:
```bash
./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