74 lines
3.1 KiB
Markdown
74 lines
3.1 KiB
Markdown
# self-host
|
|
|
|
Configuration of self-hosted third-party software on my Hetzner Cloud VPS.
|
|
|
|

|
|
|
|
## Third-party applications
|
|
|
|
### Docker-based
|
|
|
|
#### Services
|
|
|
|
| Server port | Docker port | Subdomain | Service | Description |
|
|
| ----------- | ----------- | ---------------------------- | -------- | -------------------------- |
|
|
| 8000 | 3000 | grafana.systemsobscure.net | Grafana | Server logs and monitoring |
|
|
| 8001 | 9090 | bookmarks.systemsobscure.net | Linkding | Article bookmarking tool |
|
|
| 8002 | 3000 | forgejo.systemsobscure.net | Forgejo | Git forge |
|
|
| 8004 | 3000 | wakapi.systemsobscure.net | Wakapi | Coding statistics tracker |
|
|
| 8005 | 8080 | miniflux.systemsobscure.net | Miniflux | RSS aggregator |
|
|
|
|
#### Service data
|
|
|
|
Some applicaton data is stored in a network-attached Hetzner Storagebox drive
|
|
("Storagebox Alpha"). Docker volumes are mapped to this location.
|
|
|
|
This device is permanantly mounted using the [CIFS
|
|
protocol](https://www.lenovo.com/gb/en/glossary/what-is-common-internet-file-system-cifs/)
|
|
at `/mnt/storagebox_alpha`, as specified in `/etc/fstab`.
|
|
|
|
Other application data is stored on the small harddrive of the VPS:
|
|
|
|
| Service | Data | Location | Description |
|
|
| ------- | --------------- | --------------------- | ----------------------------------------------- |
|
|
| Forgejo | MySQL database | `/data/mysql/forgejo` | Database data only. Repositories stored in NAS. |
|
|
| Wakapi | SQLite database | `/data/sqlite/wakapi` | |
|
|
|
|
### Native-based ("bare metal")
|
|
|
|
#### Forgejo runners
|
|
|
|
Although my Forgejo instance runs in Docker, the `forgejo-runner` [software](https://forgejo.org/docs/latest/admin/actions/runner-installation/) that manages the
|
|
runners necessary to execute [Forgejo Actions](https://forgejo.org/docs/v8.0/user/actions/) is installed on the metal.
|
|
|
|
This service runs as a `systemd` service configured at
|
|
`/etc/systemd/system/forgejo-runner.service`.
|
|
|
|
I currently only have a single global runner in operation (`self-host-server`)
|
|
that runs on `ubuntu-latest`.
|
|
|
|
#### Garage object storage
|
|
|
|
I run a single-zone instance of [Garage](https://garagehq.deuxfleurs.fr/) at
|
|
`s3.systemsobscure.net`. This subdomain is used for authenticated API and
|
|
`awscli` access to my buckets.
|
|
|
|
Garage is configured at `/etc/garage.toml`. Garage runs as a `systemd` service configured at
|
|
`/etc/systemd/system/garage.service`.
|
|
|
|
Certain buckets are publicly exposed to the Internet on subdomains for un-authenticated
|
|
access:
|
|
|
|
- [eolas.s3.systemsobscure.net](https://eolas.s3.systemsobscure.net/test.txt)
|
|
|
|
The naming convention here is
|
|
`[bucket-name].[garage_instance].[server_address]`.
|
|
|
|
## My applications
|
|
|
|
> All the applications that I have built and which I currently host are installed on the bare metal of the
|
|
> server and do not use Docker.
|
|
|
|
### systemsobscure.blog
|
|
|
|
This is a static website served from the `/var/www/systemsobscure.blog` directory.
|