No description
Find a file
2024-10-29 22:45:50 +01:00
services fix(matrix): Add missing macaroon key (fixes #71) 2024-10-29 22:25:36 +01:00
setup fix(redis): Add setup step to set memory overcommit (fixes #73) 2024-10-29 22:45:50 +01:00
tasks feat(task): Add temp sudo convenience task 2024-10-26 16:33:21 +02:00
.editorconfig proxy: Finish migration to caddy v2 2022-06-19 14:56:49 +02:00
.env.sample fix(matrix): Add missing macaroon key (fixes #71) 2024-10-29 22:25:36 +01:00
.git-branches.toml config: Add git town config 2024-10-29 18:46:42 +01:00
.gitattributes proxy: Finish migration to caddy v2 2022-06-19 14:56:49 +02:00
.gitignore docs: Update some outdated docs, move backup config into setup 2024-10-29 19:26:50 +01:00
LICENSE chore(legal): Add licenses 2024-07-07 17:14:30 +02:00
README.md docs: Update some outdated docs, move backup config into setup 2024-10-29 19:26:50 +01:00
renovate.json chore(config): migrate renovate config (#84) 2024-10-25 23:56:33 +02:00
task mail-server (#2) 2022-12-10 17:16:50 +00:00
Taskfile.yml Working login in forgejo with authentik 2023-02-18 00:07:06 +01:00
THIRD_PARTY_LICENSES chore(legal): Add licenses 2024-07-07 17:14:30 +02:00

Containered Server

Private server based on containers and compose

Disclaimer:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Repo Structure

  • ./services Service definitions
    • One subfolder per service with:
      • docker-compose.yml for this service and its direct dependencies (e.g. databases or workers)
      • Additional config files, possibly as template (see below)
  • ./setup Host setup
    • Setup information about a possible alpine host system
  • ./tasks Task definitions
    • compose.yml: Container related tasks e.g. starting, updating, or reading logs
    • dev.yml: Useful tasks during development, e.g. adding locally signed certificates into running containers
    • host.yml: Tasks related to host system maintenance
    • manage.yml: Tasks about managing the list of enabled services
    • services.yml: Tasks for specific services
    • utils.yml: Utility tasks, mainly used as part of other tasks

Requirements

  • envsubst, most likely via gettext package. Refer to your distros docs.
  • docker
  • docker-compose

Data Persistence

All data SHALL BE stored in $BASE_DIR (defaults to /srv), one subfolder per service.

Secrets & Configuration

Copy from .env.sample and fill in your values.

Deploy

Enable services with ./task mgmt:enable <service directory name> and check enabled services with ./task mgmt:ls-enable.

Then run

./task compose:up

List other tasks

./task -l

Templating

Filename pattern: *.template.*

Files matching the pattern are copied with the ".template." infix removed (e.g. forgejo.template.ini -> forgejo.ini).
Variables are replaced using shell substitution syntax (${VARIABLE_NAME_HERE}) using the current environment and values from .env.

Note: Variables cannot contain other variables, only one level of template is possible.

Host Setup

A possible alpine based host setup is described in /setup.

Backup

Notes on backup and a possible config using borgmatic can be found in /setup/backup