Inital commit, added Dawarich
This commit is contained in:
10
.vscode/settings.json
vendored
Normal file
10
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"json.schemas": [
|
||||||
|
{
|
||||||
|
"fileMatch": [
|
||||||
|
"/templates.json"
|
||||||
|
],
|
||||||
|
"url": "https://raw.githubusercontent.com/portainer/templates/refs/heads/v3/schema.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
14
Readme.md
Normal file
14
Readme.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Portainer app templates for the Home Server
|
||||||
|
|
||||||
|
# Use this repo
|
||||||
|
1. Log into your Portainer web UI
|
||||||
|
2. Under Settings --> App Templates, update the URL to
|
||||||
|
* `https://git.bprieshof.nl/brammp/HomeServerPortainerTemplates/raw/branch/main/templates.json`
|
||||||
|
3. Now under Home --> App Templates, you should see all apps. Click one to deploy.
|
||||||
|
|
||||||
|
|
||||||
|
# List of templates
|
||||||
|
|
||||||
|
| Name | Description |
|
||||||
|
|------|:-----------:|
|
||||||
|
| Dawarich | Self-hosted alternative to Google Location History |
|
||||||
150
stacks/dawarich-stack.yaml
Normal file
150
stacks/dawarich-stack.yaml
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
dawarich:
|
||||||
|
services:
|
||||||
|
dawarich_valkey:
|
||||||
|
image: valkey/valkey
|
||||||
|
container_name: dawarich_valkey
|
||||||
|
command: valkey-server
|
||||||
|
networks:
|
||||||
|
- dawarich
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: /srv/dawarich/valkey
|
||||||
|
target: /data
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "valkey-cli", "--raw", "incr", "ping" ]
|
||||||
|
interval: 10s
|
||||||
|
retries: 5
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 10s
|
||||||
|
dawarich_app:
|
||||||
|
image: freikin/dawarich:latest
|
||||||
|
container_name: dawarich_app
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: /srv/dawarich/watched
|
||||||
|
target: /var/app/tmp/imports/watched
|
||||||
|
- type: bind
|
||||||
|
source: /srv/dawarich/public
|
||||||
|
target: /var/app/public
|
||||||
|
networks:
|
||||||
|
- dawarich
|
||||||
|
ports:
|
||||||
|
- ${DAWARICH_PORT}:3000
|
||||||
|
# - 9394:9394 # Prometheus exporter, uncomment if needed
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
entrypoint: web-entrypoint.sh
|
||||||
|
command: ['bin/rails', 'server', '-p', '3000', '-b', '::']
|
||||||
|
restart: on-failure
|
||||||
|
environment:
|
||||||
|
RAILS_ENV: production
|
||||||
|
REDIS_URL: redis://dawarich_valkey:6379/0
|
||||||
|
DATABASE_HOST: ${POSTGRESS_HOST}
|
||||||
|
# Default 5432
|
||||||
|
DATABASE_PORT: ${POSTGRESS_PORT}
|
||||||
|
DATABASE_USERNAME: ${POSTGRESS_DB_USERNAME}
|
||||||
|
DATABASE_PASSWORD: ${POSTGRESS_DB_PASSWORD}
|
||||||
|
DATABASE_NAME: ${POSTGRESS_DB_NAME}
|
||||||
|
MIN_MINUTES_SPENT_IN_CITY: 60
|
||||||
|
#Default localhost,::1,127.0.0.1,<DockerHostIP>,<DDNS Domain>
|
||||||
|
APPLICATION_HOSTS: ${APPLICATION_HOSTS}
|
||||||
|
TIME_ZONE: Europe/Amsterdam
|
||||||
|
APPLICATION_PROTOCOL: http
|
||||||
|
DISTANCE_UNIT: km
|
||||||
|
PROMETHEUS_EXPORTER_ENABLED: false
|
||||||
|
PROMETHEUS_EXPORTER_HOST: 0.0.0.0
|
||||||
|
PROMETHEUS_EXPORTER_PORT: 9394
|
||||||
|
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
|
||||||
|
RAILS_LOG_TO_STDOUT: "true"
|
||||||
|
PHOTON_API_USE_HTTPS: "true"
|
||||||
|
PHOTON_API_HOST: ${PHOTON_API_HOST}
|
||||||
|
PHOTON_API_KEY: ${PHOTON_API_KEY}
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "100m"
|
||||||
|
max-file: "5"
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "wget -qO - http://127.0.0.1:3000/api/v1/health | grep -q '\"status\"\\s*:\\s*\"ok\"'" ]
|
||||||
|
interval: 10s
|
||||||
|
retries: 30
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 10s
|
||||||
|
depends_on:
|
||||||
|
dawarich_valkey:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '1' # Limit CPU usage to 50% of one core
|
||||||
|
memory: '4G' # Limit memory usage to 2GB
|
||||||
|
dawarich_sidekiq:
|
||||||
|
image: freikin/dawarich:latest
|
||||||
|
container_name: dawarich_sidekiq
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: /srv/dawarich/watched
|
||||||
|
target: /var/app/tmp/imports/watched
|
||||||
|
- type: bind
|
||||||
|
source: /srv/dawarich/public
|
||||||
|
target: /var/app/public
|
||||||
|
networks:
|
||||||
|
- dawarich
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
entrypoint: sidekiq-entrypoint.sh
|
||||||
|
command: ['bundle', 'exec', 'sidekiq']
|
||||||
|
restart: on-failure
|
||||||
|
environment:
|
||||||
|
RAILS_ENV: production
|
||||||
|
REDIS_URL: redis://dawarich_valkey:6379/0
|
||||||
|
DATABASE_HOST: ${POSTGRESS_HOST}
|
||||||
|
# Default 5432
|
||||||
|
DATABASE_PORT: ${POSTGRESS_PORT}
|
||||||
|
DATABASE_USERNAME: ${POSTGRESS_DB_USERNAME}
|
||||||
|
DATABASE_PASSWORD: ${POSTGRESS_DB_PASSWORD}
|
||||||
|
APPLICATION_HOSTS: localhost,::1,127.0.0.1
|
||||||
|
BACKGROUND_PROCESSING_CONCURRENCY: 10
|
||||||
|
APPLICATION_PROTOCOL: http
|
||||||
|
DISTANCE_UNIT: km
|
||||||
|
PROMETHEUS_EXPORTER_ENABLED: false
|
||||||
|
PROMETHEUS_EXPORTER_HOST: dawarich_app
|
||||||
|
PROMETHEUS_EXPORTER_PORT: 9394
|
||||||
|
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
|
||||||
|
RAILS_LOG_TO_STDOUT: "true"
|
||||||
|
PHOTON_API_USE_HTTPS: "true"
|
||||||
|
PHOTON_API_HOST: ${PHOTON_API_HOST}
|
||||||
|
PHOTON_API_KEY: ${PHOTON_API_KEY}
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "100m"
|
||||||
|
max-file: "5"
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "bundle exec sidekiqmon processes | grep $${HOSTNAME}" ]
|
||||||
|
interval: 10s
|
||||||
|
retries: 30
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 10s
|
||||||
|
depends_on:
|
||||||
|
dawarich_valkey:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
|
dawarich_app:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '1' # Limit CPU usage to 50% of one core
|
||||||
|
memory: '4G' # Limit memory usage to 2GB
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
dawarich_valkey_data:
|
||||||
|
dawarich_public:
|
||||||
|
dawarich_watched:
|
||||||
74
templates.json
Normal file
74
templates.json
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
{
|
||||||
|
"version": "3",
|
||||||
|
"templates": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"type": 3,
|
||||||
|
"title": "Dawarich",
|
||||||
|
"description": "Self-hosted alternative to Google Location History",
|
||||||
|
"categories": ["Applications"],
|
||||||
|
"platform": "linux",
|
||||||
|
"logo": "https://dawarich.app/img/logo.svg",
|
||||||
|
"repository": {
|
||||||
|
"url": "https://git.bprieshof.nl/brammp/HomeServerCTs",
|
||||||
|
"stackfile": "stacks/dawarich-DockerCompose.yaml"
|
||||||
|
},
|
||||||
|
"env": [
|
||||||
|
{
|
||||||
|
"name": "DAWARICH_PORT",
|
||||||
|
"label": "Dawarich port",
|
||||||
|
"description": "The port Dawarich is hosted on",
|
||||||
|
"default": "3000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "POSTGRESS_HOST",
|
||||||
|
"label": "DB server ip/hostname",
|
||||||
|
"description": "Postgresql server ip adres or hostname"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "POSTGRESS_PORT",
|
||||||
|
"label": "DB server port",
|
||||||
|
"description": "Postgresql server port",
|
||||||
|
"default": "5432"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "POSTGRESS_DB_NAME",
|
||||||
|
"label": "DB name",
|
||||||
|
"description": "Postgresql database name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "POSTGRESS_DB_USERNAME",
|
||||||
|
"label": "DB Username",
|
||||||
|
"description": "Postgresql database username"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "POSTGRESS_DB_PASSWORD",
|
||||||
|
"label": "DB Password",
|
||||||
|
"description": "Postgresql database pasword"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "APPLICATION_HOSTS",
|
||||||
|
"label": "App hosts",
|
||||||
|
"description": "IP Address and hostnames the application is reacheable from",
|
||||||
|
"default": "localhost,::1,127.0.0.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SECRET_KEY_BASE",
|
||||||
|
"label": "Secret key base",
|
||||||
|
"description": "The secret_key_base is used as the input secret to the applications key generator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PHOTON_API_HOST",
|
||||||
|
"label": "Photon API endpoint",
|
||||||
|
"description": "Endpoint url for komoot Photon API"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PHOTON_API_KEY",
|
||||||
|
"label": "Photon API Key",
|
||||||
|
"description": "API Key for komoot Photon API"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"maintainer": "https://git.bprieshof.nl/brammp"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user