From 51bb1081a662ecd9eb659c3e99f19e1c4b08002b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Mon, 6 Feb 2023 07:33:16 +0100 Subject: [PATCH] files setup --- .env.sample | 6 ++++ docker/docker-entrypoint.sh | 67 +++++++++++++++++++++++++++++++++++++ docker/supervisord.conf | 18 +++++++++- package.json | 7 ++-- 4 files changed, 94 insertions(+), 4 deletions(-) diff --git a/.env.sample b/.env.sample index e092a7fe5..a83361a50 100644 --- a/.env.sample +++ b/.env.sample @@ -3,6 +3,12 @@ ########### EXPOSED_PORT=3000 +######### +# FILES # +######### +EXPOSED_FILES_SERVER_PORT=3042 +PUBLIC_FILES_SERVER_URL=http://localhost:3042 + ###### # DB # ###### diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index b8cdab466..33acca2ea 100755 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -16,6 +16,12 @@ if [ -z "$AUTH_SERVER_PORT" ]; then export AUTH_SERVER_PORT=3103 fi +if [ -z "$EXPOSED_FILES_SERVER_PORT" ]; then + export FILES_SERVER_PORT=3104 +else + export FILES_SERVER_PORT=$EXPOSED_FILES_SERVER_PORT +fi + ###### # DB # ###### @@ -61,6 +67,10 @@ if [ -z "$AUTH_JWT_SECRET" ]; then export AUTH_JWT_SECRET=$(openssl rand -hex 32) fi +if [ -z "$VALET_TOKEN_SECRET" ]; then + export VALET_TOKEN_SECRET=$(openssl rand -base64 32) +fi + ######## # AUTH # ######## @@ -232,6 +242,58 @@ fi printenv | grep SYNCING_SERVER_ | sed 's/SYNCING_SERVER_//g' > /opt/server/packages/syncing-server/.env + +################ +# FILES SERVER # +################ + +if [ -z "$FILES_SERVER_LOG_LEVEL" ]; then + export FILES_SERVER_LOG_LEVEL="info" +fi +export FILES_SERVER_NODE_ENV="production" +export FILES_SERVER_VERSION="local" + +export FILES_SERVER_REDIS_EVENTS_CHANNEL="files-events" + +if [ -z "$FILES_SERVER_MAX_CHUNK_BYTES" ]; then + export FILES_SERVER_MAX_CHUNK_BYTES=100000000 +fi + +export FILES_SERVER_NEW_RELIC_ENABLED=false + +if [ -z "$FILES_SERVER_SNS_TOPIC_ARN" ]; then + export FILES_SERVER_SNS_TOPIC_ARN="arn:aws:sns:us-east-1:000000000000:files-local-topic" +fi +if [ -z "$FILES_SERVER_SNS_ENDPOINT" ]; then + export FILES_SERVER_SNS_ENDPOINT="http://localstack:4566" +fi +if [ -z "$FILES_SERVER_SNS_SECRET_ACCESS_KEY" ]; then + export FILES_SERVER_SNS_SECRET_ACCESS_KEY="x" +fi +if [ -z "$FILES_SERVER_SNS_ACCESS_KEY_ID" ]; then + export FILES_SERVER_SNS_ACCESS_KEY_ID="x" +fi +if [ -z "$FILES_SERVER_SNS_AWS_REGION" ]; then + export FILES_SERVER_SNS_AWS_REGION="us-east-1" +fi +if [ -z "$FILES_SERVER_SQS_QUEUE_URL" ]; then + export FILES_SERVER_SQS_QUEUE_URL="http://localstack:4566/000000000000/files-local-queue" +fi +if [ -z "$FILES_SERVER_SQS_AWS_REGION" ]; then + export FILES_SERVER_SQS_AWS_REGION="us-east-1" +fi +if [ -z "$FILES_SERVER_SQS_ACCESS_KEY_ID" ]; then + export FILES_SERVER_SQS_ACCESS_KEY_ID="x" +fi +if [ -z "$FILES_SERVER_SQS_SECRET_ACCESS_KEY" ]; then + export FILES_SERVER_SQS_SECRET_ACCESS_KEY="x" +fi +if [ -z "$FILES_SERVER_SQS_ENDPOINT" ]; then + export FILES_SERVER_SQS_ENDPOINT="http://localstack:4566" +fi + +printenv | grep FILES_SERVER_ | sed 's/FILES_SERVER_//g' > /opt/server/packages/files/.env + ############### # API GATEWAY # ############### @@ -250,6 +312,11 @@ export API_GATEWAY_SYNCING_SERVER_JS_URL=http://localhost:$SYNCING_SERVER_PORT export API_GATEWAY_AUTH_SERVER_URL=http://localhost:$AUTH_SERVER_PORT export API_GATEWAY_WORKSPACE_SERVER_URL=http://localhost:3004 export API_GATEWAY_REVISIONS_SERVER_URL=http://localhost:3005 +if [ -z "$PUBLIC_FILES_SERVER_URL" ]; then + export API_GATEWAY_FILES_SERVER_URL=http://localhost:$FILES_SERVER_PORT +else + export API_GATEWAY_FILES_SERVER_URL=$PUBLIC_FILES_SERVER_URL +fi export API_GATEWAY_REDIS_EVENTS_CHANNEL="api-gateway-event" diff --git a/docker/supervisord.conf b/docker/supervisord.conf index b04922133..a3e03f25c 100644 --- a/docker/supervisord.conf +++ b/docker/supervisord.conf @@ -40,4 +40,20 @@ command=yarn start:syncing-server-worker autostart=true autorestart=true stdout_logfile=/var/lib/server/logs/syncing-server-worker.log -stderr_logfile=/var/lib/server/logs/syncing-server-worker.err \ No newline at end of file +stderr_logfile=/var/lib/server/logs/syncing-server-worker.err + +[program:files] +directory=/opt/server +command=yarn start:files +autostart=true +autorestart=true +stdout_logfile=/var/lib/server/logs/files.log +stderr_logfile=/var/lib/server/logs/files.err + +[program:files-worker] +directory=/opt/server +command=yarn start:files-worker +autostart=true +autorestart=true +stdout_logfile=/var/lib/server/logs/files-worker.log +stderr_logfile=/var/lib/server/logs/files-worker.err \ No newline at end of file diff --git a/package.json b/package.json index 198342690..7c1ba7086 100644 --- a/package.json +++ b/package.json @@ -27,14 +27,15 @@ "wait-for:db": "docker/wait-for.sh $DB_HOST $DB_PORT", "wait-for:auth": "docker/wait-for.sh localhost $AUTH_SERVER_PORT", "wait-for:syncing-server": "docker/wait-for.sh localhost $SYNCING_SERVER_PORT", + "wait-for:files": "docker/wait-for.sh localhost $FILES_SERVER_PORT", "start:auth": "yarn wait-for:db && yarn workspace @standardnotes/auth-server start", "start:auth-worker": "yarn wait-for:db && yarn workspace @standardnotes/auth-server worker", "start:scheduler": "yarn workspace @standardnotes/scheduler-server worker", "start:syncing-server": "yarn wait-for:db && yarn workspace @standardnotes/syncing-server start", "start:syncing-server-worker": "yarn wait-for:db && yarn workspace @standardnotes/syncing-server worker", - "start:files": "yarn workspace @standardnotes/files-server start", - "start:files-worker": "yarn workspace @standardnotes/files-server worker", - "start:api-gateway": "yarn wait-for:auth && yarn wait-for:syncing-server && yarn workspace @standardnotes/api-gateway start", + "start:files": "yarn wait-for:db && yarn workspace @standardnotes/files-server start", + "start:files-worker": "yarn wait-for:db && yarn workspace @standardnotes/files-server worker", + "start:api-gateway": "yarn wait-for:auth && yarn wait-for:syncing-server && yarn wait-for:files && yarn workspace @standardnotes/api-gateway start", "start:websockets": "yarn workspace @standardnotes/websockets-server start", "start:workspace": "yarn workspace @standardnotes/workspace-server start", "start:analytics": "yarn workspace @standardnotes/analytics worker",