Self-hosting services for funsies
This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2024-03-31 14:59:49 -04:00
services refactor(deluge): extract into own pod 2024-03-31 14:59:49 -04:00
.gitignore feat(healthchecks): ping services periodically to check for availability + post results to Discord 2024-03-08 18:39:57 -05:00
apt.txt build(deps): ensure that provisioning installs podman 2024-02-03 13:20:53 -05:00
bootstrap.sh chore(deadcode): clean up pyinvoke+pyinfra logic, python venv 2023-12-15 15:52:02 -05:00
pod.sh fix: ensure that pod can be created from scratch 2024-02-09 00:10:24 -05:00
provision.sh build(deps): ensure that provisioning installs podman 2024-02-03 13:20:53 -05:00
README.md feat: update all services to tag images with release or dev+hash 2023-12-15 23:53:56 -05:00
Taskfile.internal.yml feat(taskfiles): expose current version based on latest release or dev tag 2023-12-15 23:51:38 -05:00
Taskfile.yml refactor(scripts): clean up references to networks 2024-02-08 23:43:24 -05:00

spadinaistan

Quoi?

Spadinaistan is my personal cloud, which runs on an old laptop in my office. This code isn't intended to be used by anyone else.

Getting started

Use . bootstrap.sh to set up Task.

Once this is done, task -l will outline all available commands.

Configuration

Environment provided to tasks

The task runner requires a env.yml file to exist at the top level. This should define a few global variables that are specific to the environment:

version: '3'

env:
    # Path to the application data storage root.
    APP_DATA_DIR: ...
    # Prefix to all container names.
    CONTAINER_NAME_PREFIX: ...
    # Path to the app-specific dotenv files.
    ENV_FILE_DIR: ...
    # Name of the network associated with the tunnel exposing services.
    SHARED_NETWORK_NAME: ...
    # Path to the storage root.
    STORAGE_DIR: ...

The env.yml file is ignored by version-control.

Image versions

When building and starting images, images are tagged with either the release version (if on a commit that's tagged with a release) or a dev tag that includes the hash (i.e. dev-<commit-hash>).