Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9123504
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Subscribers
None
View Options
diff --git a/docker/conf/nginx.conf b/docker/conf/nginx.conf
index 8a57c36..b3bd430 100644
--- a/docker/conf/nginx.conf
+++ b/docker/conf/nginx.conf
@@ -1,145 +1,150 @@
worker_processes 1;
# Show startup logs on stderr; switch to debug to print, well, debug logs when
# running nginx-debug
error_log /dev/stderr info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 100M;
# Built-in Docker resolver. Needed to allow on-demand resolution of proxy
# upstreams.
resolver 127.0.0.11 valid=30s;
+ log_format combined_with_duration '$remote_addr - $remote_user [$time_local] '
+ '"$request" $status $body_bytes_sent '
+ '"$http_referer" "$http_user_agent" $request_time';
+ access_log /dev/stdout combined_with_duration;
+
server {
listen 5080 default_server;
# Add a trailing slash to top level requests (e.g. http://localhost:5080/flower)
rewrite ^/([^/]+)$ /$1/ permanent;
# In this pile of proxies, all upstreams are set using a variable. This
# makes nginx DNS-resolve the name of the upstream when clients request
# them, rather than on start. This avoids an unstarted container preventing
# nginx from starting.
#
# Variables need to be set as early as possible, as they're statements from
# the rewrite module and `rewrite [...] break;` will prevent these
# statements from being executed.
location /flower/ {
set $upstream "http://flower:5555";
rewrite ^/flower/(.*)$ /$1 break;
proxy_pass $upstream;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /rabbitmq/ {
set $upstream "http://amqp:15672";
rewrite ^ $request_uri;
rewrite ^/rabbitmq(/.*)$ $1 break;
proxy_pass $upstream$uri;
}
location /scheduler {
set $upstream "http://swh-scheduler:5008";
rewrite ^/scheduler/(.*)$ /$1 break;
proxy_pass $upstream;
}
location /storage {
set $upstream "http://swh-storage:5002";
rewrite ^/storage/(.*)$ /$1 break;
proxy_pass $upstream;
}
location /indexer-storage {
set $upstream "http://swh-idx-storage:5007";
rewrite ^/indexer-storage/(.*)$ /$1 break;
proxy_pass $upstream;
}
location /deposit {
set $upstream "http://swh-deposit:5006";
rewrite ^/deposit/(.*)$ /deposit/$1 break;
proxy_pass $upstream;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host:5080;
proxy_set_header SCRIPT_NAME /deposit;
proxy_redirect off;
}
location /objstorage {
set $upstream "http://swh-objstorage:5003";
rewrite ^/objstorage/(.*)$ /$1 break;
proxy_pass $upstream;
}
location /prometheus {
set $upstream "http://prometheus:9090";
proxy_pass $upstream;
}
location /grafana {
set $upstream "http://grafana:3000";
rewrite ^/grafana/(.*)$ /$1 break;
proxy_pass $upstream;
}
location / {
set $upstream "http://swh-web:5004";
proxy_pass $upstream;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $http_host;
proxy_redirect off;
}
location /keycloak {
set $upstream "http://keycloak:8080";
proxy_pass $upstream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /cmak {
set $upstream "http://cmak:9000";
proxy_pass $upstream;
proxy_set_header Host $host;
rewrite ^/cmak/(.*)$ /$1 break;
sub_filter "href=\"/" "href=\"/cmak/";
sub_filter "src=\"/" "src=\"/cmak/";
sub_filter "action=\"/" "action=\"/cmak/";
sub_filter_once off;
}
location /mailhog {
set $upstream "http://mailhog:8025";
proxy_pass $upstream;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
rewrite ^/mailhog/(.*)$ /$1 break;
}
}
}
diff --git a/docker/services/swh-storage/entrypoint.sh b/docker/services/swh-storage/entrypoint.sh
index cd86a78..108ab66 100755
--- a/docker/services/swh-storage/entrypoint.sh
+++ b/docker/services/swh-storage/entrypoint.sh
@@ -1,50 +1,52 @@
#!/bin/bash
set -e
source /srv/softwareheritage/utils/pyutils.sh
setup_pip
if [ "$STORAGE_BACKEND" = "postgresql" ]; then
source /srv/softwareheritage/utils/pgsql.sh
setup_pgsql
elif [ "$STORAGE_BACKEND" = "cassandra" ]; then
echo Waiting for Cassandra to start
wait-for-it ${CASSANDRA_SEED}:9042 -s --timeout=0
echo Creating keyspace
cat << EOF | python3
from swh.storage.cassandra import create_keyspace
create_keyspace(['${CASSANDRA_SEED}'], 'swh')
EOF
fi
case "$1" in
"shell")
exec bash -i
;;
*)
if [ "$STORAGE_BACKEND" = "postgresql" ]; then
wait_pgsql ${POSTGRES_DB}
echo Database setup
echo Creating extensions...
swh db init-admin --db-name ${POSTGRES_DB} storage
echo Initializing the database...
swh db init --db-name ${POSTGRES_DB} storage
fi
echo Starting the swh-storage API server
exec gunicorn --bind 0.0.0.0:5002 \
--reload \
+ --access-logfile /dev/stdout \
+ --access-logformat "%(t)s %(r)s %(s)s %(b)s %(M)s" \
--threads 4 \
--workers 2 \
- --log-level DEBUG \
+ --log-level INFO \
--timeout 3600 \
--config 'python:swh.core.api.gunicorn_config' \
'swh.storage.api.server:make_app_from_configfile()'
;;
esac
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Jun 21, 5:35 PM (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3274546
Attached To
rDENV Development environment
Event Timeline
Log In to Comment