feat(memos): release memos
deployment notes: - compare to Affine, maybe outline + memos can be substituted for affine
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
[Quadlet]
|
||||
DefaultDependencies=false
|
||||
|
||||
[Unit]
|
||||
Description=Memos
|
||||
|
||||
[Container]
|
||||
Image=docker.io/neosmemo/memos:{{ version['containers']['memos'] }}
|
||||
ContainerName=memos
|
||||
HostName=memos
|
||||
PublishPort={{ services['memos']['ports']['http'] }}:5230/tcp
|
||||
|
||||
# Volumes
|
||||
Volume=%h/data/containers/memos/data:/var/opt/memos:rw
|
||||
Volume=%h/containers/memos/ssl:/etc/ssl/memos:ro
|
||||
|
||||
# General
|
||||
Environment="TZ={{ timezone }}"
|
||||
Environment="MEMOS_MODE=prod"
|
||||
Environment="MEMOS_PORT=5230"
|
||||
Environment="MEMOS_INSTANCE_URL=https://{{ services['memos']['domain']['public'] }}.{{ domain['public'] }}"
|
||||
|
||||
# Database (PostgreSQL)
|
||||
Environment="MEMOS_DRIVER=postgres"
|
||||
Secret=MEMOS_DSN,type=env
|
||||
|
||||
[Service]
|
||||
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
|
||||
Restart=always
|
||||
RestartSec=10s
|
||||
TimeoutStopSec=120
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
@@ -283,3 +283,24 @@ identity_providers:
|
||||
access_token_signed_response_alg: 'none'
|
||||
userinfo_signed_response_alg: 'none'
|
||||
token_endpoint_auth_method: 'client_secret_post'
|
||||
# https://www.authelia.com/integration/openid-connect/clients/memos/
|
||||
- client_id: 'memos'
|
||||
client_name: 'Memos'
|
||||
client_secret: '{{ hostvars['console']['memos']['oidc']['hash'] }}'
|
||||
public: false
|
||||
authorization_policy: 'one_factor'
|
||||
require_pkce: false
|
||||
pkce_challenge_method: ''
|
||||
redirect_uris:
|
||||
- 'https://{{ services['memos']['domain']['public'] }}.{{ domain['public'] }}/auth/callback'
|
||||
scopes:
|
||||
- 'openid'
|
||||
- 'profile'
|
||||
- 'email'
|
||||
response_types:
|
||||
- 'code'
|
||||
grant_types:
|
||||
- 'authorization_code'
|
||||
access_token_signed_response_alg: 'none'
|
||||
userinfo_signed_response_alg: 'none'
|
||||
token_endpoint_auth_method: 'client_secret_post'
|
||||
|
||||
@@ -83,3 +83,9 @@
|
||||
header_up Host {http.request.header.X-Forwarded-Host}
|
||||
}
|
||||
}
|
||||
{{ services['memos']['domain']['internal'] }}.{{ domain['internal'] }} {
|
||||
import private_tls
|
||||
reverse_proxy host.containers.internal:{{ services['memos']['ports']['http'] }} {
|
||||
header_up Host {http.request.header.X-Forwarded-Host}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,6 +145,15 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
{{ services['memos']['domain']['public'] }}.{{ domain['public'] }} {
|
||||
import crowdsec_log
|
||||
route {
|
||||
crowdsec
|
||||
reverse_proxy https://{{services['memos']['domain']['internal'] }}.{{ domain['internal'] }} {
|
||||
header_up Host {http.reverse_proxy.upstream.host}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Internal domain
|
||||
{{ node['name'] }}.{{ domain['internal'] }} {
|
||||
|
||||
Reference in New Issue
Block a user