102 lines
3.0 KiB
Markdown
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
|