add too many things

This commit is contained in:
M1n-0
2025-05-16 15:48:06 +02:00
parent 004c701edd
commit 2e877610de
3 changed files with 52 additions and 62 deletions

View File

@@ -1,20 +1,4 @@
services: services:
caddy:
image: caddy:latest
ports:
# - "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
depends_on:
- flask
- wekan
- mattermost
networks:
- gesthub
flask: flask:
build: ./web build: ./web
environment: environment:
@@ -26,6 +10,8 @@ services:
- mariadb - mariadb
volumes: volumes:
- ./web:/app - ./web:/app
ports:
- "5000:5000"
networks: networks:
- gesthub - gesthub
@@ -41,51 +27,21 @@ services:
networks: networks:
- gesthub - gesthub
wekan:
image: wekanteam/wekan
environment:
- MONGO_URL=mongodb://mongo:27017/wekan
- ROOT_URL=https://wekan.gesthub
depends_on:
- mongo
networks:
- gesthub
mongo: mongo:
image: mongo:latest image: arm64v8/mongo:4.4
volumes: volumes:
- mongo_data:/data/db - mongo_data:/data/db
networks: networks:
- gesthub - gesthub
mattermost:
image: mattermost/mattermost-team-edition:latest
ports:
- "8065:8065"
environment:
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mmuserpass@db:5432/mattermost?sslmode=disable
- MM_SERVICESETTINGS_SITEURL=http://chat.gesthub
depends_on:
- db
volumes:
- mattermost_data:/mattermost/data
networks:
- gesthub
db:
image: postgres:13
environment:
- POSTGRES_DB=mattermost
- POSTGRES_USER=mmuser
- POSTGRES_PASSWORD=mmuserpass
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- gesthub
keycloak: keycloak:
image: quay.io/keycloak/keycloak:22.0.5 image: quay.io/keycloak/keycloak:22.0.5
command: start-dev command:
- start-dev
- --hostname=keycloak.ninolbt.com
- --hostname-strict=false
- --hostname-strict-https=false
- --proxy=edge
environment: environment:
- KEYCLOAK_ADMIN=admin - KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=admin - KEYCLOAK_ADMIN_PASSWORD=admin
@@ -102,6 +58,7 @@ services:
- keycloak_data:/opt/keycloak/data - keycloak_data:/opt/keycloak/data
networks: networks:
- gesthub - gesthub
keycloak-db: keycloak-db:
image: postgres:13 image: postgres:13
environment: environment:
@@ -112,6 +69,39 @@ services:
- keycloakdb_data:/var/lib/postgresql/data - keycloakdb_data:/var/lib/postgresql/data
networks: networks:
- gesthub - gesthub
# plane:
# image: planehq/plane:latest
# container_name: plane
# depends_on:
# - plane-db
# environment:
# DATABASE_URL: postgres://plane:plane@plane-db:5432/plane
# SECRET_KEY: supersecretkeyhere
# ENABLE_OPENID_CONNECT: "true"
# OIDC_RP_CLIENT_ID: plane-client
# OIDC_RP_CLIENT_SECRET: changeme
# OIDC_OP_AUTHORIZATION_ENDPOINT: https://keycloak.ninolbt.com/realms/gesthub/protocol/openid-connect/auth
# OIDC_OP_TOKEN_ENDPOINT: https://keycloak.ninolbt.com/realms/gesthub/protocol/openid-connect/token
# OIDC_OP_USER_ENDPOINT: https://keycloak.ninolbt.com/realms/gesthub/protocol/openid-connect/userinfo
# OIDC_OP_JWKS_ENDPOINT: https://keycloak.ninolbt.com/realms/gesthub/protocol/openid-connect/certs
# ports:
# - "3000:3000"
# networks:
# - gesthub
# plane-db:
# image: postgres:15
# container_name: plane-db
# environment:
# POSTGRES_DB: plane
# POSTGRES_USER: plane
# POSTGRES_PASSWORD: plane
# volumes:
# - plane_db_data:/var/lib/postgresql/data
# networks:
# - gesthub
networks: networks:
gesthub: gesthub:
driver: bridge driver: bridge
@@ -121,7 +111,6 @@ volumes:
caddy_config: caddy_config:
mariadb_data: mariadb_data:
mongo_data: mongo_data:
mattermost_data:
postgres_data:
keycloak_data: keycloak_data:
keycloakdb_data: keycloakdb_data:
plane_db_data:

View File

@@ -1,4 +1,5 @@
import os import os
import uuid
from flask import Flask, redirect, url_for, session, render_template from flask import Flask, redirect, url_for, session, render_template
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
from authlib.integrations.flask_client import OAuth from authlib.integrations.flask_client import OAuth
@@ -16,8 +17,8 @@ oauth = OAuth(app)
keycloak = oauth.register( keycloak = oauth.register(
name='keycloak', name='keycloak',
client_id='flask-app', client_id='flask-app',
client_secret='6R70kt1x9KjYpccZCMnPvJAGiJFzRHjE', client_secret='IpVDkBPN6ya9oj8ZJPWNtW32bdaqv83Q',
server_metadata_url='http://keycloak.localhost/realms/gesthub/.well-known/openid-configuration', server_metadata_url='https://keycloak.ninolbt.com/realms/gesthub/.well-known/openid-configuration',
client_kwargs={ client_kwargs={
'scope': 'openid profile email', 'scope': 'openid profile email',
} }
@@ -27,21 +28,21 @@ keycloak = oauth.register(
def index(): def index():
user = session.get('user') user = session.get('user')
if user: if user:
return render_template('/view/index.html', user=user) return render_template('view/index.html', user=user)
return redirect(url_for('login')) return redirect(url_for('login'))
@app.route('/login') @app.route('/login')
def login(): def login():
nonce = uuid.uuid4().hex nonce = uuid.uuid4().hex
session['nonce'] = nonce session['nonce'] = nonce
redirect_uri = url_for('auth', _external=True) redirect_uri = url_for('auth', _external=True, _scheme='https')
return keycloak.authorize_redirect(redirect_uri) return keycloak.authorize_redirect(redirect_uri, nonce=nonce)
@app.route('/auth') @app.route('/auth')
def auth(): def auth():
token = keycloak.authorize_access_token() token = keycloak.authorize_access_token()
nonce = session.pop('nonce', None) nonce = session.pop('nonce', None)
userinfo = keycloak.parse_id_token(token) userinfo = keycloak.parse_id_token(token, nonce=nonce)
session['user'] = userinfo session['user'] = userinfo
return redirect('/') return redirect('/')