Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MeB OAuth - latest iteration #477

Open
wants to merge 94 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
6639879
Create new OAuth login page
MonkeyDo Oct 6, 2022
ca77eec
Use more generic css class names
MonkeyDo May 11, 2023
ec32347
Add initial signup page
MonkeyDo May 11, 2023
3a24b94
Small improvements of the signup page
MonkeyDo May 11, 2023
fe3e68e
Bigger TOC modal
MonkeyDo May 11, 2023
8c6ab8c
Improve login/signup logos
MonkeyDo May 11, 2023
ad1f7fa
Change sign in page header
MonkeyDo May 12, 2023
425e882
Fix typos
amCap1712 May 26, 2023
b65403b
Initial Login System
amCap1712 Jun 10, 2023
5f46ea2
Add errors to login forms
amCap1712 Jun 11, 2023
0727b5d
Remove user to supporter throughout the codebase - 2
amCap1712 May 25, 2023
5406520
Initial OAuth Work commit
amCap1712 Jul 28, 2021
f9fa516
Add CodeChallenge extension to authorization code flow
amCap1712 Jul 29, 2021
30cd2a2
Add ImplicitGrant
amCap1712 Jul 29, 2021
ff71f97
Add RefreshTokenGrant
amCap1712 Jul 29, 2021
4700ac1
Add revocation endpoint
amCap1712 Jul 31, 2021
28f444c
second commit
amCap1712 Oct 6, 2022
0af3895
Update models
amCap1712 Oct 6, 2022
ad9d678
misc updates
amCap1712 Oct 6, 2022
dc44709
update authlib and implementation
amCap1712 Oct 6, 2022
6cb6885
more updates
amCap1712 Oct 6, 2022
a7827d9
misc fixes
amCap1712 Oct 6, 2022
7697bec
misc fixes - 2
amCap1712 Oct 6, 2022
320d110
add introspection endpoint
amCap1712 Oct 7, 2022
33168eb
fix return
amCap1712 Oct 7, 2022
7ff6a54
fix bugs
amCap1712 Oct 7, 2022
2ac29e6
Create dummy oauth."user" table
amCap1712 May 9, 2023
63d0ccb
temp fix for create_tables oauth
amCap1712 May 10, 2023
913ea21
fix before_first_request
amCap1712 May 11, 2023
8eeb00a
fix before_first_request -2
amCap1712 May 11, 2023
0c7affc
fix ISEs and oauth setup
amCap1712 May 17, 2023
d9383c9
Rename OAuth2User to "user"
amCap1712 May 25, 2023
a388a01
Remove old ouath stuff, minor touch-ups, ready for first full test drive
amCap1712 Aug 17, 2023
fa3e43e
more fixes after testing
amCap1712 Sep 28, 2023
eaf8c12
more signup improvements
amCap1712 Oct 1, 2023
f8cfad1
working prototype
amCap1712 Oct 1, 2023
b41f2d8
add email update for users
amCap1712 Oct 3, 2023
287b64d
token scope fixes
amCap1712 Oct 3, 2023
750ff0e
Reactify sign up and profile forms
amCap1712 Oct 4, 2023
6da816b
Reactify user sign up, login, forgot/reset password/username forms
amCap1712 Oct 4, 2023
053f7b7
Reactify user profile edit form
amCap1712 Oct 4, 2023
f9b67c3
Reactify oauth app create/edit forms
amCap1712 Oct 5, 2023
c73dc3b
Add redirects to login/signup
amCap1712 Oct 28, 2023
dcbf4d0
sql file cleanup
amCap1712 Jan 11, 2024
8459364
Revert user data migration related changes
amCap1712 Mar 20, 2024
f6b065b
Move OAuth files to different top-level directory
amCap1712 Mar 21, 2024
2d4c15d
oauth fixes and isolation
amCap1712 Mar 30, 2024
daf645a
wolf deploy
amCap1712 Mar 30, 2024
95d2bea
wolf deploy - 2
amCap1712 Mar 30, 2024
a5f76d8
wolf deploy - 3
amCap1712 Mar 30, 2024
9932a09
wolf deploy - 4
amCap1712 Mar 30, 2024
e3bd952
interim checkin
amCap1712 Apr 3, 2024
5370dd7
add tests for authorization code grant
amCap1712 Apr 4, 2024
8db084a
add tests for pkce extension
amCap1712 Apr 5, 2024
c185b8e
add tests for refresh grant
amCap1712 Apr 7, 2024
5f16207
add tests for introspection endpoint
amCap1712 Apr 7, 2024
e3bf014
refactor refresh token storage and add tests for token revocation
amCap1712 Apr 14, 2024
849b4fb
refactor tests
amCap1712 Apr 14, 2024
fe398d4
fix form warnings
amCap1712 Apr 14, 2024
28d1825
Add approval prompt
amCap1712 Apr 14, 2024
13b12db
fix prompt page form and unify login user lookup
amCap1712 Apr 15, 2024
4b93cab
misc fixes
amCap1712 Apr 15, 2024
c54a466
add more tests for client revokation and token expiry
amCap1712 Apr 15, 2024
437e360
misc fixes for test deployment
amCap1712 Apr 16, 2024
f78546d
fix loading user from MB
amCap1712 Apr 16, 2024
4bb8c4f
misc fixes
amCap1712 Apr 17, 2024
04457fb
misc fixes - 2
amCap1712 Apr 18, 2024
0f9d2f5
misc improvements
amCap1712 Apr 21, 2024
a62bf81
add post method to authorization endpoint - 2
amCap1712 Apr 22, 2024
ebe028c
add security headers to oauth2 blueprint
amCap1712 Apr 22, 2024
06e253f
add form post response mode
amCap1712 Apr 23, 2024
85435bb
revoke tokens if old refresh token is used
amCap1712 Apr 23, 2024
5c35f9f
do not auto approve for implicit grant
amCap1712 Apr 23, 2024
fcdb514
add more tests
amCap1712 Apr 25, 2024
7243681
refactor tests
amCap1712 Apr 25, 2024
00af984
remove post authentication from authorize endpoint
amCap1712 Apr 25, 2024
f601784
Add header tests
amCap1712 Apr 26, 2024
dcd10c7
remove post authentication tests
amCap1712 Apr 26, 2024
cf10335
add tests for access token and refresh token format
amCap1712 Apr 26, 2024
85ed247
fix delete application and improve delete flow
amCap1712 Apr 26, 2024
36e0d3d
allow any client to introspect any token
amCap1712 Jul 12, 2024
835d2db
Fix applications page table overflow
MonkeyDo Jul 31, 2024
3277a35
temp fixes for local development
amCap1712 Sep 12, 2024
faa3220
Git-ignore frontend dist folder
MonkeyDo Sep 12, 2024
ea6fae8
Update free account type display
MonkeyDo Sep 12, 2024
96ae241
Fix button style
MonkeyDo Sep 12, 2024
1a731bc
Prefill donation form if user is logged in
amCap1712 Sep 11, 2024
d55b3e4
Add prefill for donation amount, currency and editor
amCap1712 Sep 13, 2024
425bde0
Merge branch 'master' into new-new-oauth
amCap1712 Sep 23, 2024
e218d89
remove unneeded env vars
amCap1712 Oct 24, 2024
4a5a22d
fix tests and local setup
amCap1712 Nov 1, 2024
0786d7a
update prod container setup
amCap1712 Nov 5, 2024
7271352
fix rc.local permissions
amCap1712 Nov 5, 2024
150eafa
use consul config to get oauth server url
amCap1712 Nov 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,19 @@ FROM metabrainz-base as metabrainz-prod

RUN pip install --no-cache-dir uWSGI==2.0.23

COPY ./docker/prod/consul-template-uwsgi.conf /etc/

COPY ./docker/prod/uwsgi.service /etc/service/uwsgi/run
RUN chmod 755 /etc/service/uwsgi/run
COPY ./docker/prod/uwsgi.ini /etc/uwsgi/uwsgi.ini
COPY ./docker/web/consul-template-web.conf /etc/
COPY ./docker/web/web.service /etc/service/web/run
COPY ./docker/web/web.ini /etc/uwsgi/web.ini
RUN chmod 755 /etc/service/web/run
RUN touch /etc/service/web/down

COPY ./docker/oauth/consul-template-oauth.conf /etc/
COPY ./docker/oauth/oauth.service /etc/service/oauth/run
COPY ./docker/oauth/oauth.ini /etc/uwsgi/oauth.ini
RUN chmod 755 /etc/service/oauth/run
RUN touch /etc/service/oauth/down

COPY ./docker/rc.local /etc/rc.local

# copy the compiled js files and static assets from image to prod
COPY --from=metabrainz-frontend-prod /code/frontend/robots.txt /static/
Expand Down
25 changes: 0 additions & 25 deletions admin/sql/create_foreign_keys.sql
Original file line number Diff line number Diff line change
Expand Up @@ -35,29 +35,4 @@ ALTER TABLE access_log
REFERENCES token (value) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION;

ALTER TABLE oauth_client
ADD CONSTRAINT oauth_client_supporter_fkey FOREIGN KEY (user_id)
REFERENCES supporter (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE oauth_grant
ADD CONSTRAINT oauth_grant_oauth_client_fkey FOREIGN KEY (client_id)
REFERENCES oauth_client (client_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE oauth_grant
ADD CONSTRAINT oauth_grant_supporter_fkey FOREIGN KEY (user_id)
REFERENCES supporter (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE oauth_token
ADD CONSTRAINT oauth_token_oauth_client_fkey FOREIGN KEY (client_id)
REFERENCES oauth_client (client_id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE;

ALTER TABLE oauth_token
ADD CONSTRAINT oauth_token_supporter_fkey FOREIGN KEY (user_id)
REFERENCES supporter (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE;

COMMIT;
3 changes: 0 additions & 3 deletions admin/sql/create_primary_keys.sql
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ ALTER TABLE token ADD CONSTRAINT token_pkey PRIMARY KEY (value);
ALTER TABLE token_log ADD CONSTRAINT token_log_pkey PRIMARY KEY (token_value, "timestamp", action);
ALTER TABLE access_log ADD CONSTRAINT access_log_pkey PRIMARY KEY (token, "timestamp");
ALTER TABLE payment ADD CONSTRAINT payment_pkey PRIMARY KEY (id);
ALTER TABLE oauth_client ADD CONSTRAINT oauth_client_pkey PRIMARY KEY (client_id);
ALTER TABLE oauth_grant ADD CONSTRAINT oauth_grant_pkey PRIMARY KEY (id);
ALTER TABLE oauth_token ADD CONSTRAINT oauth_token_pkey PRIMARY KEY (id);
ALTER TABLE dataset ADD CONSTRAINT dataset_pkey PRIMARY KEY (id);
ALTER TABLE dataset_supporter ADD CONSTRAINT dataset_supporter_pkey PRIMARY KEY (id);

Expand Down
32 changes: 1 addition & 31 deletions admin/sql/create_tables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ CREATE TABLE dataset (
CREATE TABLE supporter (
id SERIAL NOT NULL, -- PK
is_commercial BOOLEAN NOT NULL,
musicbrainz_id CHARACTER VARYING UNIQUE,
musicbrainz_id CHARACTER VARYING UNIQUE,
musicbrainz_row_id INTEGER UNIQUE,
created TIMESTAMP WITH TIME ZONE,
state state_types NOT NULL,
Expand Down Expand Up @@ -96,34 +96,4 @@ CREATE TABLE payment (
invoice_number INTEGER
);

CREATE TABLE oauth_client (
client_id CHARACTER VARYING, -- PK
client_secret CHARACTER VARYING NOT NULL,
redirect_uri CHARACTER VARYING NOT NULL,
user_id INTEGER NOT NULL, -- FK, user
name CHARACTER VARYING NOT NULL,
description CHARACTER VARYING NOT NULL,
website CHARACTER VARYING NOT NULL
);

CREATE TABLE oauth_grant (
id SERIAL NOT NULL, -- PK
client_id CHARACTER VARYING NOT NULL, -- FK, oauth_client
user_id INTEGER NOT NULL, -- FK, user
redirect_uri CHARACTER VARYING NOT NULL,
code CHARACTER VARYING NOT NULL,
expires TIMESTAMP WITH TIME ZONE NOT NULL,
scopes CHARACTER VARYING
);

CREATE TABLE oauth_token (
id SERIAL NOT NULL, -- PK
client_id CHARACTER VARYING NOT NULL, -- FK, oauth_client
access_token CHARACTER VARYING NOT NULL,
user_id INT NOT NULL, -- FK, user
refresh_token CHARACTER VARYING NOT NULL,
expires TIMESTAMP WITH TIME ZONE NOT NULL,
scopes CHARACTER VARYING
);

COMMIT;
109 changes: 109 additions & 0 deletions admin/sql/oauth/create_tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
CREATE schema oauth;

CREATE TABLE oauth.scope (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
name TEXT NOT NULL,
description TEXT NOT NULL,
UNIQUE (name),
PRIMARY KEY (id)
);

INSERT INTO oauth.scope (name, description)
VALUES ('profile', 'View your public account information')
, ('tag', 'View and modify your private tags')
, ('rating', 'View and modify your private ratings');

CREATE TABLE oauth.client (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
client_id TEXT NOT NULL,
client_secret TEXT,
owner_id INTEGER NOT NULL,
name TEXT NOT NULL,
description TEXT NOT NULL,
website TEXT,
redirect_uris TEXT[] NOT NULL,
client_id_issued_at TIMESTAMP WITH TIME ZONE NOT NULL,
PRIMARY KEY (id)
-- no FK for now as user data lives in MB db
-- FOREIGN KEY(owner_id) REFERENCES "user" (id) ON DELETE CASCADE
);

CREATE TABLE oauth.code (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
user_id INTEGER NOT NULL,
client_id INTEGER NOT NULL,
code TEXT NOT NULL,
redirect_uri TEXT NOT NULL,
code_challenge TEXT,
code_challenge_method TEXT,
issued_at TIMESTAMP WITH TIME ZONE NOT NULL,
expires_in INTEGER,
revoked BOOLEAN,
PRIMARY KEY (id),
-- no FK for now as user data lives in MB db
-- FOREIGN KEY(user_id) REFERENCES "user" (id) ON DELETE CASCADE,
FOREIGN KEY(client_id) REFERENCES oauth.client (id) ON DELETE CASCADE,
UNIQUE (code)
);

CREATE TABLE oauth.access_token (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
user_id INTEGER NOT NULL,
client_id INTEGER NOT NULL,
authorization_code_id INTEGER,
access_token TEXT NOT NULL,
issued_at TIMESTAMP WITH TIME ZONE,
expires_in INTEGER,
revoked BOOLEAN,
PRIMARY KEY (id),
-- no FK for now as user data lives in MB db
-- FOREIGN KEY(user_id) REFERENCES "user" (id) ON DELETE CASCADE,
FOREIGN KEY (client_id) REFERENCES oauth.client (id) ON DELETE CASCADE,
FOREIGN KEY (authorization_code_id) REFERENCES oauth.code (id) ON DELETE CASCADE,
UNIQUE (access_token)
);

CREATE TABLE oauth.refresh_token (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
user_id INTEGER NOT NULL,
client_id INTEGER NOT NULL,
authorization_code_id INTEGER,
refresh_token TEXT NOT NULL,
issued_at TIMESTAMP WITH TIME ZONE,
expires_in INTEGER,
revoked BOOLEAN,
PRIMARY KEY (id),
-- no FK for now as user data lives in MB db
-- FOREIGN KEY(user_id) REFERENCES "user" (id) ON DELETE CASCADE,
FOREIGN KEY (client_id) REFERENCES oauth.client (id) ON DELETE CASCADE,
FOREIGN KEY (authorization_code_id) REFERENCES oauth.code (id) ON DELETE CASCADE,
UNIQUE (refresh_token)
);

CREATE TABLE oauth.l_access_token_scope (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
access_token_id INTEGER NOT NULL,
scope_id INTEGER NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY(access_token_id) REFERENCES oauth.access_token (id) ON DELETE CASCADE,
FOREIGN KEY(scope_id) REFERENCES oauth.scope (id) ON DELETE CASCADE
);

CREATE TABLE oauth.l_refresh_token_scope (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
refresh_token_id INTEGER NOT NULL,
scope_id INTEGER NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY(refresh_token_id) REFERENCES oauth.refresh_token (id) ON DELETE CASCADE,
FOREIGN KEY(scope_id) REFERENCES oauth.scope (id) ON DELETE CASCADE
);


CREATE TABLE oauth.l_code_scope (
id INTEGER GENERATED BY DEFAULT AS IDENTITY,
code_id INTEGER NOT NULL,
scope_id INTEGER NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY(code_id) REFERENCES oauth.code (id) ON DELETE CASCADE,
FOREIGN KEY(scope_id) REFERENCES oauth.scope (id) ON DELETE CASCADE
);
18 changes: 14 additions & 4 deletions config.py.example
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
# -*- coding: utf-8 -*-
# CUSTOM CONFIGURATION

DEBUG = True # set to False in production mode

SECRET_KEY = "CHANGE_THIS"

# DATABASE
SQLALCHEMY_DATABASE_URI = "postgresql://metabrainz:metabrainz@db:5432/metabrainz"
SQLALCHEMY_DATABASE_URI = "postgresql://metabrainz:metabrainz@meb_db:5432/metabrainz"
SQLALCHEMY_MUSICBRAINZ_URI = ""
SQLALCHEMY_TRACK_MODIFICATIONS = False

POSTGRES_ADMIN_URI = "postgresql://postgres:postgres@db/postgres"
POSTGRES_ADMIN_URI = "postgresql://postgres:postgres@meb_db/postgres"

# DATABASES

Expand Down Expand Up @@ -48,8 +47,10 @@ STRIPE_KEYS = {
}

# if developing payment integration locally, change this to your localhost url
SERVER_BASE_URL = "https://metabrainz.org"
SERVER_BASE_URL = "http://localhost:8000"
SERVER_NAME = "localhost:8000"

MUSICBRAINZ_SERVER = "https://beta.musicbrainz.org"

# REDIS
REDIS = {
Expand Down Expand Up @@ -113,3 +114,12 @@ NOTIFICATION_RECIPIENTS = [
#PREFERRED_URL_SCHEME = "https"
#USE_COMPILED_STYLING = True
USE_NGINX_X_ACCEL = False

OAUTH2_BLUEPRINT_PREFIX = "/oauth2"
OAUTH2_ACCESS_TOKEN_GENERATOR = "oauth.generator.create_access_token"
OAUTH2_REFRESH_TOKEN_GENERATOR = "oauth.generator.create_refresh_token"
OAUTH2_TOKEN_EXPIRES_IN = {
"authorization_code": 3600,
"implicit": 3600,
}
OAUTH2_AUTHORIZATION_CODE_EXPIRES_IN = 600
24 changes: 24 additions & 0 deletions consul_config.py.ctmpl
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,21 @@ MAIL_FROM_DOMAIN = '''{{template "KEY" "mail_from_domain"}}'''
PREFERRED_URL_SCHEME = '''{{template "KEY" "preferred_url_scheme"}}'''

SERVER_BASE_URL = f"{PREFERRED_URL_SCHEME}://{MAIL_FROM_DOMAIN}"
SERVER_NAME = None

{{if service "pgbouncer-slave"}}
{{with index (service "pgbouncer-slave") 0}}
MB_DATABASE_URI = "postgresql://musicbrainz_ro@{{.Address}}:{{.Port}}/musicbrainz_db"
{{end}}
{{else}}
MB_DATABASE_URI = ""
{{end}}

SQLALCHEMY_BINDS = {
"musicbrainz": MB_DATABASE_URI
}

MUSICBRAINZ_SERVER = '''{{template "KEY" "musicbrainz/oauth_server_url"}}'''

# List of email addresses
NOTIFICATION_RECIPIENTS = [
Expand All @@ -108,3 +123,12 @@ JSON_DUMPS_DIR = "/data/json_dumps"
USE_COMPILED_STYLING = True

DEBUG_TB_INTERCEPT_REDIRECTS = False

OAUTH2_BLUEPRINT_PREFIX = "/new-oauth2"
OAUTH2_ACCESS_TOKEN_GENERATOR = "oauth.generator.create_access_token"
OAUTH2_REFRESH_TOKEN_GENERATOR = "oauth.generator.create_refresh_token"
OAUTH2_TOKEN_EXPIRES_IN = {
"authorization_code": 3600,
"implicit": 3600,
}
OAUTH2_AUTHORIZATION_CODE_EXPIRES_IN = 600
2 changes: 1 addition & 1 deletion develop.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function invoke_docker_compose {
}

function invoke_manage {
invoke_docker_compose run --rm web \
invoke_docker_compose run --rm meb_web \
python3 manage.py \
"$@"
}
Expand Down
34 changes: 26 additions & 8 deletions docker/docker-compose.dev.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
# Docker Compose file for development
version: "3.8"

volumes:
db:

Expand All @@ -11,26 +9,46 @@ services:
context: ..
dockerfile: Dockerfile
target: metabrainz-dev
command: python manage.py runserver -h 0.0.0.0 -p 80
command: python manage.py runserver -h 0.0.0.0 -p 8000
volumes:
- ../data/replication_packets:/data/replication_packets
- ../data/json_dumps:/data/json_dumps
- ..:/code/metabrainz
- ../frontend:/static
depends_on:
- meb_db
- redis
expose:
- "8000"
ports:
- "8000:80"
- "8000:8000"

oauth:
build:
context: ..
dockerfile: Dockerfile
target: metabrainz-dev
command: flask run --debug -h 0.0.0.0 -p 8150
environment:
FLASK_APP: "oauth:create_app()"
AUTHLIB_INSECURE_TRANSPORT: 1
volumes:
- ..:/code/metabrainz
- ../frontend:/static
depends_on:
- db
- meb_db
- redis
ports:
- "8150:8150"
expose:
- "8150"

db:
meb_db:
image: postgres:12.3
volumes:
- db:/var/lib/postgresql/data:z
environment:
POSTGRES_PASSWORD: postgres
ports:
- "15432:5432"

redis:
image: redis:3.2.1
Expand Down
9 changes: 4 additions & 5 deletions docker/docker-compose.test.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# Docker Compose file for testing
version: "3.8"

services:

web:
Expand All @@ -11,10 +8,12 @@ services:
volumes:
- ..:/code/metabrainz
depends_on:
- db
- meb_db
- redis
environment:
AUTHLIB_INSECURE_TRANSPORT: 1

db:
meb_db:
image: postgres:12.3
environment:
POSTGRES_PASSWORD: postgres
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ template {
}

exec {
command = ["uwsgi", "/etc/uwsgi/uwsgi.ini"]
command = ["uwsgi", "/etc/uwsgi/oauth.ini"]
splay = "5s"
reload_signal = "SIGHUP"
kill_signal = "SIGTERM"
Expand Down
Loading