Commit graph

62 commits

Author SHA1 Message Date
ben
8dc8398c0d chore(media-centre): onboard Jellyfin to consul service mesh
All checks were successful
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (pull_request) Successful in 2m31s
Terraform CI/CD / Terraform Plan (pull_request) Successful in 1m46s
Terraform CI/CD / Terraform Apply (pull_request) Has been skipped
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (push) Successful in 2m32s
Terraform CI/CD / Terraform Plan (push) Has been skipped
Terraform CI/CD / Terraform Apply (push) Successful in 1m42s
2025-06-25 09:04:47 +00:00
109f294cff
chore: update volume paths to point to ephemeral disks 2025-06-24 20:32:36 +01:00
ben
d498590a22 fix(media-centre): remove user spec from jellyfin
All checks were successful
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (push) Successful in 1m36s
Terraform CI/CD / Terraform Plan (push) Has been skipped
Terraform CI/CD / Terraform Apply (push) Successful in 1m1s
2025-06-24 14:26:59 +00:00
ben
70376eeab3 chore(media-centre): rebind configs and db files to ephemeral disk
All checks were successful
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (push) Successful in 1m32s
Terraform CI/CD / Terraform Plan (push) Has been skipped
Terraform CI/CD / Terraform Apply (push) Successful in 1m21s
2025-06-24 14:21:06 +00:00
509206bb63
chore(media-centre): add newlines for better readability
All checks were successful
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (push) Successful in 1m29s
Terraform CI/CD / Terraform Plan (push) Has been skipped
Terraform CI/CD / Terraform Apply (push) Successful in 56s
2025-06-23 21:26:54 +01:00
f31fd4406b
chore(media-centre): add Jellyfin service configuration to media-centre jobspec
Some checks failed
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (push) Failing after 1m17s
Terraform CI/CD / Terraform Plan (push) Has been skipped
Terraform CI/CD / Terraform Apply (push) Has been skipped
2025-06-23 21:22:14 +01:00
35516b2222
chore(media-centre): add device mapping for GPU rendering via vaapi
All checks were successful
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (push) Successful in 2m23s
Terraform CI/CD / Terraform Plan (push) Has been skipped
Terraform CI/CD / Terraform Apply (push) Successful in 52s
2025-06-14 23:31:40 +01:00
ben
b5e66efc76 chore(media-centre): fix formatting
Some checks failed
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (pull_request) Successful in 1m31s
Terraform CI/CD / Terraform Plan (pull_request) Failing after 1m8s
Terraform CI/CD / Terraform Apply (pull_request) Has been skipped
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (push) Successful in 1m18s
Terraform CI/CD / Terraform Plan (push) Has been skipped
Terraform CI/CD / Terraform Apply (push) Successful in 51s
2025-05-06 12:00:06 +00:00
7e1a142283
chore(media-centre): onboard tautulli to consul service mesh
Some checks failed
Terraform CI/CD / Terraform Format, Validate, Lint, Scan (push) Failing after 1m52s
Terraform CI/CD / Terraform Plan (push) Has been skipped
Terraform CI/CD / Terraform Apply (push) Has been skipped
2025-05-02 20:31:38 +00:00
ea8b403f8d
chore(media-centre): set tmpfs max size
All checks were successful
Lint / lint (push) Successful in 1m43s
Terraform Plan and Apply / cicd (push) Successful in 5m22s
- tmpfs usage is charged to containers max memory and was being OOM killed
2025-04-17 12:59:20 +00:00
421abf5d5f
chore(media-centre): onboard to traefiks connect-enabled provider 2025-04-15 20:38:18 +00:00
09dfdc209c
Revert "chore(media-centre): set server transport for plex"
All checks were successful
Lint / lint (push) Successful in 1m21s
Terraform Plan and Apply / cicd (push) Successful in 1m7s
This reverts commit 49097613a4.
2025-04-14 23:50:25 +00:00
49097613a4
chore(media-centre): set server transport for plex
All checks were successful
Lint / lint (push) Successful in 1m51s
Terraform Plan and Apply / cicd (push) Successful in 1m25s
- disables http2 to downstream (envoy)
2025-04-14 21:43:21 +00:00
1dbe7692f6 chore(deps): update ghcr.io/tautulli/tautulli docker tag to v2.15.2
All checks were successful
Lint / lint (pull_request) Successful in 1m36s
Terraform Plan and Apply / cicd (pull_request) Successful in 1m32s
Lint / lint (push) Successful in 1m15s
Terraform Plan and Apply / cicd (push) Successful in 54s
2025-04-13 00:05:51 +00:00
ad5c61e749
chore(media-centre): onboard plex onto consul service mesh
All checks were successful
Lint / lint (push) Successful in 6m1s
Terraform Plan and Apply / cicd (push) Successful in 6m2s
- allows for plex to upgrade connections away from http1.1
2025-04-09 22:11:07 +00:00
ben
1e2d23b8af revert 5b72f21057
All checks were successful
Lint / lint (push) Successful in 46s
Terraform Plan and Apply / cicd (push) Successful in 54s
revert chore(media-centre): use ephemeral backing storage for tautulli
2025-03-27 22:32:13 +00:00
5b72f21057
chore(media-centre): use ephemeral backing storage for tautulli
All checks were successful
Lint / lint (push) Successful in 48s
Terraform Plan and Apply / cicd (push) Successful in 55s
2025-03-27 21:44:27 +00:00
b78968d5c4
chore(media-centre): remove jellyfin job specification from Nomad configuration
All checks were successful
Lint / lint (push) Successful in 1m13s
Terraform Plan and Apply / cicd (push) Successful in 1m14s
2025-03-19 14:38:15 +00:00
2f243766fc
chore(media-centre): increase plex maximum memory allocation from 2048 to 4096
All checks were successful
Lint / lint (push) Successful in 1m7s
Terraform Plan and Apply / cicd (push) Successful in 55s
2025-03-09 00:03:39 +00:00
b2978cb4ef
chore(media-centre): add health check configuration for jellyfin service
All checks were successful
Lint / lint (push) Successful in 48s
Terraform Plan and Apply / cicd (push) Successful in 52s
2025-03-06 20:10:08 +00:00
ben
57da8a493d chore(media-centre): remove assigned consul service names
All checks were successful
Lint / lint (push) Successful in 22s
Terraform Plan and Apply / cicd (push) Successful in 36s
- consul appears to by providing ACL tokens based on a case sensitive service name and chooses the service name as lower case. The default service name is in lower case.
2025-03-06 12:50:38 +00:00
1bebc0c25b
chore(media-centre): format tmpfs_options mode for consistency
All checks were successful
Lint / lint (push) Successful in 6m13s
Terraform Plan and Apply / cicd (push) Successful in 2m46s
2025-02-28 18:12:30 +00:00
084feb7da2
chore(media-centre): reduce maximum memory allocation to 2048MB
Some checks failed
Lint / lint (push) Failing after 11m17s
Terraform Plan and Apply / cicd (push) Successful in 3m8s
2025-02-28 17:56:19 +00:00
93400d8c1e
chore(media-centre): add tmpfs options for transcode directory
Some checks failed
Lint / lint (push) Failing after 49s
Terraform Plan and Apply / cicd (push) Successful in 1m1s
2025-02-28 17:20:49 +00:00
ben
345489acbc chore(media-centre): replace transcode directory with tempfs
All checks were successful
Lint / lint (push) Successful in 16s
Terraform Plan and Apply / cicd (push) Successful in 24s
- set read only to false
2025-02-28 15:16:05 +00:00
706c51011b
Revert "chore: update entrypoints from 'websecure' to 'wanwebsecure,lanwebsecure' for all services"
All checks were successful
Lint / lint (push) Successful in 48s
Terraform Plan and Apply / cicd (push) Successful in 36s
This reverts commit 67a53af8ea.
2025-02-21 23:40:29 +00:00
67a53af8ea
chore: update entrypoints from 'websecure' to 'wanwebsecure,lanwebsecure' for all services
Some checks failed
Lint / lint (push) Failing after 7s
Terraform Plan and Apply / cicd (push) Successful in 4m21s
2025-02-21 22:47:44 +00:00
a5e4304eb1 chore(media-centre): replace node id constraint with node name constraint
All checks were successful
Lint / lint (push) Successful in 1m15s
Terraform Plan and Apply / cicd (push) Successful in 1m8s
2025-02-20 04:07:56 +00:00
47d1f6b857 chore(deps): update ghcr.io/jellyfin/jellyfin docker tag to v10.10.6
All checks were successful
Lint / lint (pull_request) Successful in 35s
Terraform Plan and Apply / cicd (pull_request) Successful in 52s
Lint / lint (push) Successful in 30s
Terraform Plan and Apply / cicd (push) Successful in 47s
2025-02-16 23:01:35 +00:00
f004409391 chore(deps): update ghcr.io/jellyfin/jellyfin docker tag to v10.10.5
All checks were successful
Lint / lint (pull_request) Successful in 58s
Terraform Plan and Apply / cicd (pull_request) Successful in 49s
Lint / lint (push) Successful in 20s
Terraform Plan and Apply / cicd (push) Successful in 30s
2025-01-26 11:07:16 +00:00
b903aea3b9 chore(deps): update ghcr.io/jellyfin/jellyfin docker tag to v10.10.4
All checks were successful
Lint / lint (pull_request) Successful in 1m2s
Terraform Plan and Apply / cicd (pull_request) Successful in 53s
Lint / lint (push) Successful in 25s
Terraform Plan and Apply / cicd (push) Successful in 38s
2025-01-24 01:14:41 +00:00
92024ed68a
fix(media-centre): adjust memory settings to optimize resource allocation 2025-01-18 13:25:45 +00:00
070d5f1808 chore(deps): update ghcr.io/tautulli/tautulli docker tag to v2.15.1 2025-01-12 00:01:53 +00:00
9af9846216
feat(matrix): add Nomad job specification for Matrix service
feat(matrix): update resource allocation in Nomad job specification

feat(matrix): onboard element service to traefik

feat(matrix): add port configuration for Element service

chore(matrix): reformat

feat(matrix): update resource allocation in Nomad job specification

fix(matrix): minimum MemoryMB value is 10

feat(matrix): update resource allocation in Nomad job specification

feat(matrix): split server and clients into seperate groups

feat(matrix): well known to be served by nginx

fix(matrix): add well known route for all hosts

feat(matrix): use separate traefik router for well known

feat(matrix): migrate config.yaml for mas

feat(matrix): divide mas config between nomad and volume

feat(matrix): split cinny and element task groups

refactor(media-centre): Migrate media-centre job spec to Nomad HCL format

fix(media-centre): remove json from resource nomad job

fix(media-centre): update media-centre job spec to use Nomad HCL format

feat(media-centre): add downloader group

- Added a new group called "downloaders" to handle proxy tasks for downloading media files.
- Configured the proxy task with necessary settings and environment variables.

fix(media-centre): use OPENVPN_USER env variable in proxy task

fix(media-centre): Add /dev/net/tun device to proxy task

feat(media-centre): Add resource limits to proxy task

feat(media-centre): Add Plex task to media-centre job spec

fix(media-centre): add constraints to media-centre job spec

fix(media-centre): nomad doesn't allow sharing devices

fix(media-centre): disable change config dir ownership

fix(media-centre): plex process user is set using env vars

fix(media-centre): update PLEX_GID in job spec

fix(media-centre): update PLEX_GID in job spec

fix(media-centre): update PLEX_UID in job spec

feat(media-centre): enable nvidia gpu capabilities

feat(media-centre): add Tautulli service to media-centre job spec

fix(media-centre): update tautulli volumes

feat(plextraktsync): add plextraktsync module

fix(plextraktsync): update plextraktsync job spec "type" to "batch"

feat(plextraktsync): update resource allocation

fix(plextraktsync): fix cron schedule in plextraktsync job spec

feat(nfs-csi): add nfs-csi module

chore: update .gitignore to include .env file

chore: format files

feat(seedbox): add seedbox module

feat(seedbox): add qbittorrent module and NFS volume

feat(seedbox): add timezone configuration for seedbox job

fix(seedbox): vuetorrent-lsio-mod image env var

feat(seedbox): add HTTP_PORT environment variable for qbittorrent module

feat(seedbox): update access mode for NFS volume

feat(seedbox): add node constraint for seedbox job

feat(seedbox): add subdirectories for NFS volumes

feat(seedbox): add nolock mount flag for NFS volumes

feat(seedbox): Update NFS volume configuration

feat(seedbox): update Docker image and enable force pull

feat(seedbox): pause container network definition

feat(elk): create kibana

feat(elk): update kibana cpu allocation

feat(elk): add elasticsearch container to elk job

This commit adds a new task "elasticsearch" to the "elk" job in the "node" group. The task uses the "podman" driver and pulls the "docker.elastic.co/elasticsearch/elasticsearch:8.15.2" image with force pull enabled. It exposes the "transport" port and mounts the "/mnt/docker/elastic/elasticsearch/config" and "/mnt/docker/elastic/elasticsearch/data" volumes. The task is allocated with 500 CPU and 1024 memory resources.

feat(seedbox): update resource allocation in seedbox job

fix(elk): remove ulimit from elk job

See: https://github.com/hashicorp/nomad-driver-podman/issues/341

fix(elk): add selinuxlabel to volume mounts in elk job

refactor(modules): remove unused modules and jobspecs

refactor(elk): update CPU allocation in elk job

feat(media-centre): Plex to use host network

feat(elk): add 9200 port to es node

feat(elk): allocate more ram to node

feat(elk): allocate even more ram to node

feat(media-centre): reduce memory allocation of tautulli

feat(elk): revert memory allocation after shard tidy-up

feat(media-centre): set memory soft limit

feat(media-centre): update memory hard limit for tautulli

feat(elk): tweak node mem alloc

See: https://www.elastic.co/guide/en/elasticsearch/reference/current/size-your-shards.html#_example_11

feat(seedbox): add memory soft limit to vpn client

feat(seedbox): update memory hard limit for vpn client

fix(matrix): increase whatsapp-bridge memory allocation

refactor(elk): update elastic and kibana image versions in elk job

feat: add latest image versions and add force pull

feat: enable force pull for all podman driver tasks

feat(matrix): increase syncv3 memory allocation

feat: migrate podman memory allocation to nomad max memory

fix: nomad max memory is defined by memory_max

feat(matrix): add ecs fields to task metadata

refactor(matrix): migrate shared meta to parent

refactor(matrix): update resource allocation in jobspec.nomad.hcl

refactor(matrix): update resource allocation in jobspec.nomad.hcl

refactor(matrix): update resource allocation in jobspec.nomad.hcl

refactor(plextraktsync): update resource allocation in jobspec.nomad.hcl

refactor(plextraktsync): remove task node constraint

refactor: migrate podman tasks to docker tasks

feat(elk): update ulimit for elasticsearch container

refactor(elk): update volume paths in jobspec.nomad.hcl

feat(seedbox): remove pause container

feat(elk): update kibana count in jobspec.nomad.hcl

refactor(elk): remove node constraint from kibana

refactor(elk): add spread attribute to kibana

refactor(elk): update port configuration in jobspec.nomad.hcl

refactor(dummy): migrate json jobspec to hcl

feat(dummy): update service provider to consul

fix(dummy): add port label to port definition

refactor(dummy): rename jobspec to match standard

feat(dummy): migrate to service mesh

chore(dummy): update Nomad provider version to 2.4.0

chore(dummy): update Nomad provider version to 2.4.0

feat(dummy): configure traefik

refactor(dummy): update provider to use consul instead of nomad

feat(renovate): create module for automated dependency updates

Add renovate.json

fix(renovate): increase memory allocation

feat(renovate): add GITHUB_COM_TOKEN variable

refactor(renovate): pin version

feat(renovate): enable dependency dashboard

refactor(matrix): use bridge netowrking for server group

refactor(matrix): update URLs to use allocated addresses

refactor(matrix): remove host.docker.internal host

fix(matrix): update SYNCV3_BINDADDR

fix(matrix): update SYNCV3_BINDADDR port to 8009

fix(elk): increase memory allocation

feat(elk): disable co-located kibana allocations

refactor(jobspec): update provider to consul for elk and media-centre services

feat(media-centre): reduce memory allocation from 4096 to 1024

fix(jobspec): replace constraints with new neto client id

feat(elk): update data volume path to use unique node name

feat(elk): migrate elastic config to nfs

feat(elk): add Nyx

refactor(workflows): reformat (#17)

Reviewed-on: #17

fix(elk): increase memory allocation to 2048 MB

refactor(matrix): remove specific node constraint from job specification

feat(matrix): implement consul service mesh

feat(elk): use allocation index for node state location

refactor(media-centre): remove deprecated NVIDIA_DRIVER_CAPABILITIES

fix(media-centre): plex transcode dir not writable

fix(media-centre): set transcode dir to world writable

fix(media-centre): set transcode dir to world writable

feat(media-centre): replace plex transcode dir with a persistent volume

feat(media-centre): increase plex memory limit

For caching

chore(elk): promote elastic version

feat(elk): remove force_pull option from Elasticsearch and Kibana configurations

style(jobspec): improve formatting in HCL files

feat(elk): add health check

feat(media-centre): add NVIDIA visible devices for Jellyfin and Plex

fix(media-centre): increase max memory for tautulli

feat(plugin-csi): add NFS CSI driver jobspec and main configuration

feat(main.tf): add plugin-csi module to main configuration

fix(plugin-csi): refactor NFS job specifications into separate files for controller and node

fix(plugin-csi): add NFS path variable for controller and node resources

fix(plugin-csi): add NFS path variable to controller and node job specifications

fix(plugin-csi): add provisioner name to NFS job specifications for controller and node

fix(plugin-csi): update NFS job specifications

feat(seedbox): restructure job specifications and add NFS volume registrations for media and qbittorrent config

feat(workflows): add lint workflow for Terraform and Nomad formatting

fix(seedbox): add attachment and access modes for media and qbittorrent_config volumes

feat(seedbox): remove node constraint

Update modules/seedbox/main.tf

fix(seedbox): add mount options with nolock flag for media and qbittorrent_config volumes

fix(seedbox): update share paths to use lowercase in media and qbittorrent_config volumes

fix(seedbox): remove unused device configuration from jobspec

feat(matrix): add health check configuration

feat(matrix): add health check ports for synapse, mas, and nginx

fix(matrix): remove health check configuration for synapse, mas, and nginx

feat(main.tf): remove unused and broken seedbox module

feat(renovate): use JSON log format

chore(elk): upgrade version to latest

feat(elk): use 2 kibana replicas

feat(elk): add on_update ignore option to ready check configuration

fix(elk): update volume paths to use node unique name for configuration and data

feat(matrix): add envoy_metrics port and update service metadata for Consul integration

feat(matrix): add health check configuration to synapse job

feat(matrix): add /metrics endpoint exposure for envoy_metrics

fix(matrix): update service port configurations to use static port numbers

feat(matrix): restructure ingress groups and enhance service configurations for improved routing

fix(matrix): update whatsapp bridge tokens and change push to receive ephemeral

feat(media-centre): remove node constraint from tautulli task configuration

feat(elk): onboard hestia node to nomad

feat(elk): enhance job specification with Envoy metrics and update service configurations

feat(renovate): onboard nomad docker image updates

chore(deps): update ghcr.io/renovatebot/renovate docker tag to v38.142.7

chore(jobspec): use explicit image version tags where possible

fix(jobspec): formatting

chore(deps): update busybox docker tag to v1.37.0

chore(deps): update docker.io/library/nginx docker tag to v1.27.3

chore(deps): update ghcr.io/renovatebot/renovate docker tag to v39

chore(deps): update ghcr.io/renovatebot/renovate docker tag to v39.59.0

chore(deps): update ghcr.io/renovatebot/renovate docker tag to v39.60.0

chore(matrix): format multiline string in jobspec.nomad.hcl for improved readability

chore(secrets): refactor jobspecs to use templates for sensitive environment variables
2024-12-17 13:56:26 +00:00
0c04a48f57
fix(jellyfin): nomad can delete ephemeral storage on redeployment
See: https://developer.hashicorp.com/nomad/docs/operations/stateful-workloads
2024-09-20 00:19:37 +00:00
3a92146de5
feat(jellyfin): use recommended memory spec 2024-09-19 23:48:26 +00:00
b0f97f5023
fix(jellyfin): map config to alloc local root 2024-09-19 21:04:35 +00:00
122ddd61ca
feat(jellyfin): migrate config to nomad fs 2024-09-19 20:48:57 +00:00
8fde06c42c
feat(jellyfin): migrate to official image 2024-09-19 20:20:00 +00:00
64e3be711f
feat(jellyfin): retry setting soft memory limit 2024-09-19 18:30:09 +00:00
b99e01107a feat(jellyfin): set MALLOC_TRIM_THRESHOLD_ 2024-08-25 11:24:11 +01:00
a938a7bd6e
feat: update logging configuration for dummy, uptime, and media-centre modules 2024-08-14 10:41:47 +01:00
cd88bac77d
feat: Remove Nomad validation step in plan-and-apply workflow 2024-08-04 12:40:18 +00:00
8b7dc11327
feat: update logging configuration for dummy, uptime, and media-centre modules 2024-08-04 11:12:16 +00:00
42968a0d45 revert 7524d34643
revert fix: Update jellyfin Docker configuration for GPU passthrough
2024-07-31 00:36:57 +01:00
7524d34643
fix: Update jellyfin Docker configuration for GPU passthrough 2024-07-29 19:39:31 +00:00
90dc051151
fix: Revert useless memory soft limit for jellyfin 2024-07-28 20:12:50 +00:00
9e9e513451
fix: memory_hard_limit datatype is number, not string 2024-07-28 19:14:29 +00:00
693c72588e
fix: Reduce memory consumption by jellyfin
See: https://github.com/jellyfin/jellyfin/issues/6306#issuecomment-1774093928
2024-07-28 19:06:18 +00:00
46ce1ed431
Revert "Installing yt-dlp"
This reverts commit 6ecd68f862.
This reverts commit f8d8f87fb4.
This reverts commit 29d9d0d856.
This reverts commit 4e7b86b426.
This reverts commit 61a80d47b0.
2024-06-29 11:22:24 +00:00