22 Commits

Author SHA1 Message Date
964662d7f7 Add support for local authentication. 2024-08-21 19:37:52 -07:00
1669d64a5a chore: publish 0.4.0+0.22.1 release
All checks were successful
continuous-integration/drone/push Build is passing
2024-02-27 23:12:55 +01:00
8be72aa8df add optional VIKUNJA_RATELIMIT_NOAUTHLIMIT env
All checks were successful
continuous-integration/drone/push Build is passing
2024-02-27 16:30:19 +01:00
e501cc662d Add sample oauth data 2024-02-27 16:26:49 +01:00
8050d24c7c chore: publish 0.3.0+0.21.0 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-13 11:52:56 +02:00
d3c98de025 chore: point backup to a volume directory 2023-06-26 17:22:51 +02:00
365448458c Remove on-failure restart policy
All checks were successful
continuous-integration/drone/push Build is passing
Always restart the container
2023-05-23 16:39:06 +02:00
4bbec31d8a add auto update and timeout env
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-18 18:24:41 +02:00
1ce54b1fe3 add timeout label
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-18 13:03:37 +02:00
fe83250372 chore: publish 0.2.4+0.20.5 release
Some checks reported errors
continuous-integration/drone/push Build was killed
2023-03-21 16:34:00 +01:00
4cfe5f66a8 chore: publish 0.2.3+0.20.3 release
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-06 16:30:11 +01:00
6955772632 fix: bump config version 2023-03-06 16:30:01 +01:00
e7addc8405 chore: add .drone file
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2023-03-06 16:22:39 +01:00
d7412e71cf chore: publish 0.2.2+0.20.3 release 2023-03-06 16:18:58 +01:00
2206aeca68 fix: remove healthcheck, it breaks everthing as usual ... 2023-03-06 16:18:18 +01:00
464d2cf3ba feat: use redis for keyvalue cache 2023-03-06 16:17:47 +01:00
35d1e14a81 feat: increase jwtttl 2023-03-06 16:17:25 +01:00
5bbe653775 feat: sso logout url 2023-03-06 16:15:54 +01:00
e6d99ff449 feat: add healthcheck for api 2023-02-16 10:28:55 +01:00
e070a5edbf fix: example domain in .env 2023-01-20 15:51:27 +01:00
5e41b22f61 chore: publish 0.2.1+0.20.1 release 2022-12-02 13:08:31 +01:00
e9eae9a9d5 chore: publish 0.2.0+0.20.0 release 2022-11-08 09:21:19 +01:00
6 changed files with 88 additions and 24 deletions

43
.drone.yml Normal file
View File

@ -0,0 +1,43 @@
---
kind: pipeline
name: deploy to swarm-test.autonomic.zone
steps:
- name: deployment
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings:
host: swarm-test.autonomic.zone
stack: vikunja
generate_secrets: true
purge: true
deploy_key:
from_secret: drone_ssh_swarm_test
networks:
- proxy
environment:
DOMAIN: authentik.swarm-test.autonomic.zone
STACK_NAME: authentik
LETS_ENCRYPT_ENV: production
CONFIG_YML_VERSION: v1
SECRET_DB_PASSWORD_VERSION: v1
SECRET_JWT_SECRET_VERSION: v1
trigger:
branch:
- main
---
kind: pipeline
name: generate recipe catalogue
steps:
- name: release a new version
image: plugins/downstream
settings:
server: https://build.coopcloud.tech
token:
from_secret: drone_abra-bot_token
fork: true
repositories:
- coop-cloud/auto-recipes-catalogue-json
trigger:
event: tag

View File

@ -1,6 +1,8 @@
TYPE=vikunja
TIMEOUT=300
ENABLE_AUTO_UPDATE=true
DOMAIN={{ .Domain }}
DOMAIN=vikunja.example.com
## Domain aliases
#EXTRA_DOMAINS=', `www.vikunja.example.com`'
@ -14,13 +16,22 @@ LOG_LEVEL=INFO
COMPOSE_FILE=compose.yml
#VIKUNJA_RATELIMIT_NOAUTHLIMIT=10
# uncomment to enable local authentication
# LOCAL_AUTH_ENABLED=true
# uncomment to enable self-registration (if disabled, can be done via
# command line in the api container with vikunja user command)
# LOCAL_REGISTRATION_ENABLED=true
# SSO OAUTH
# e.g. see https://goauthentik.io/integrations/services/vikunja/
# COMPOSE_FILE="${COMPOSE_FILE}:compose.oauth.yml"
# OAUTH_ENABLED=true
# OAUTH_NAME
# OAUTH_URL
# OAUTH_CLIENT_ID
# OAUTH_NAME=authentik
# OAUTH_URL=https://login.example.com/application/o/vikunja/
# OAUTH_CLIENT_ID=vikunja
# OAUTH_LOGOUT_URL=https://login.example.com/application/o/vikunja/end-session/
# SECRET_OAUTH_SECRET_VERSION=v1
# E-MAIL

View File

@ -1 +1 @@
export CONFIG_YML_VERSION=v3
export CONFIG_YML_VERSION=v6

View File

@ -7,6 +7,7 @@ services:
- OAUTH_NAME
- OAUTH_URL
- OAUTH_CLIENT_ID
- OAUTH_LOGOUT_URL
- SECRET_OAUTH_SECRET_VERSION=V1
secrets:
- oauth_secret

View File

@ -3,10 +3,13 @@ version: "3.8"
services:
api:
image: vikunja/api:0.19.2
image: vikunja/api:0.22.1
environment:
- DOMAIN
- LOG_LEVEL
- VIKUNJA_RATELIMIT_NOAUTHLIMIT
- LOCAL_AUTH_ENABLED
- LOCAL_REGISTRATION_ENABLED
volumes:
- files:/app/vikunja/files
networks:
@ -17,10 +20,8 @@ services:
- db_password
configs:
- source: config_yml
target: /app/vikunja/config.yml
target: /etc/vikunja/config.yml
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}_api.loadbalancer.server.port=3456"
@ -29,19 +30,18 @@ services:
- "traefik.http.routers.${STACK_NAME}_api.tls.certresolver=${LETS_ENCRYPT_ENV}"
app:
image: vikunja/frontend:0.19.1
image: vikunja/frontend:0.22.1
networks:
- proxy
deploy:
restart_policy:
condition: on-failure
labels:
- "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80"
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "coop-cloud.${STACK_NAME}.version=0.1.0+0.19.1"
- "coop-cloud.${STACK_NAME}.version=0.4.0+0.22.1"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost" ]
interval: 30s
@ -69,13 +69,11 @@ services:
secrets:
- db_password
deploy:
restart_policy:
condition: on-failure
labels:
backupbot.backup: "true"
backupbot.backup.pre-hook: "mkdir -p /tmp/backup/ && PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /tmp/backup/backup.sql"
backupbot.backup.post-hook: "rm -rf /tmp/backup"
backupbot.backup.path: "/tmp/backup/"
backupbot.backup.pre-hook: "PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /var/lib/postgresql/data/backup.sql"
backupbot.backup.post-hook: "rm -rf /var/lib/postgresql/data/backup.sql"
backupbot.backup.path: "/var/lib/postgresql/data/backup.sql"
volumes:
files:

View File

@ -5,7 +5,7 @@ service:
JWTSecret: {{ secret "jwt_secret" }}
# # The duration of the issed JWT tokens in seconds.
# # The default is 259200 seconds (3 Days).
# jwtttl: 259200
# jwtttl: 604800
# # The duration of the "remember me" time in seconds. When the login request is made with
# # the long param set, the token returned will be valid for this period.
# # The default is 2592000 seconds (30 Days).
@ -33,7 +33,11 @@ service:
# # Enable sharing of lists via a link
# enablelinksharing: true
# # Whether to let new users registering themselves or not
# enableregistration: true
{{ if eq (env "LOCAL_REGISTRATION_ENABLED") "true" }}
enableregistration: true
{{ else }}
enableregistration: false
{{ end }}
# # Whether to enable task attachments or not
# enabletaskattachments: true
# # The time zone all timestamps are in. Please note that time zones have to use [the official tz database names](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). UTC or GMT offsets won't work.
@ -281,16 +285,20 @@ log:
#
# # Key Value Storage settings
# # The Key Value Storage is used for different kinds of things like metrics and a few cache systems.
# keyvalue:
# # The type of the storage backend. Can be either "memory" or "redis". If "redis" is chosen it needs to be configured seperately.
# type: "memory"
keyvalue:
# The type of the storage backend. Can be either "memory" or "redis". If "redis" is chosen it needs to be configured seperately.
type: "redis"
#
auth:
# Local authentication will let users log in and register (if enabled) through the db.
# This is the default auth mechanism and does not require any additional configuration.
local:
# Enable or disable local authentication
{{ if eq (env "LOCAL_AUTH_ENABLED") "true" }}
enabled: true
{{ else }}
enabled: false
{{ end }}
# OpenID configuration will allow users to authenticate through a third-party OpenID Connect compatible provider.<br/>
# The provider needs to support the `openid`, `profile` and `email` scopes.<br/>
# **Note:** Some openid providers (like gitlab) only make the email of the user available through openid claims if they have set it to be publicly visible.
@ -305,13 +313,16 @@ auth:
enabled: {{ env "OAUTH_ENABLED" }}
# The url to redirect clients to. Defaults to the configured frontend url. If you're using Vikunja with the official
# frontend, you don't need to change this value.
# redirecturl: <frontend url>
redirecturl: https://{{ env "DOMAIN" }}/auth/openid/
# A list of enabled providers
providers:
# The name of the provider as it will appear in the frontend.
- name: {{ env "OAUTH_NAME" }}
# The auth url to send users to if they want to authenticate using OpenID Connect.
authurl: {{ env "OAUTH_URL" }}
# The oidc logouturl that users will be redirected to on logout.
# Leave empty or delete key, if you do not want to be redirected.
logouturl: {{ env "OAUTH_LOGOUT_URL" }}
# The client ID used to authenticate Vikunja at the OpenID Connect provider.
clientid: {{ env "OAUTH_CLIENT_ID" }}
# The client secret used to authenticate Vikunja at the OpenID Connect provider.