changes for deployment on amazon

This commit is contained in:
Christian Kauer 2025-01-23 07:50:33 +01:00
parent b7e08687b4
commit d6511b4864
4 changed files with 83 additions and 112 deletions

View File

@ -13,16 +13,19 @@ services:
- ./nginx/ssl/private_key.key:/etc/nginx/ssl/private_key.key
# You do not need this if you have configured to use your own s3 file storage
minio:
restart: on-failure
image: minio/minio
environment:
- MINIO_BROWSER_REDIRECT_URL=${FQDN?:err}/minio
- MINIO_ROOT_USER=${APPFLOWY_S3_ACCESS_KEY:-minioadmin}
- MINIO_ROOT_PASSWORD=${APPFLOWY_S3_SECRET_KEY:-minioadmin}
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
# minio:
# restart: on-failure
# image: minio/minio
# ports:
# - 9000:9000
# environment:
# - MINIO_BROWSER_REDIRECT_URL=${FQDN?:err}/minio
# - MINIO_ROOT_USER=${APPFLOWY_S3_ACCESS_KEY:-minioadmin}
# - MINIO_ROOT_PASSWORD=${APPFLOWY_S3_SECRET_KEY:-minioadmin}
# command: server /data --console-address ":9001"
# volumes:
# - minio_data:/data
postgres:
restart: on-failure
@ -37,7 +40,7 @@ services:
test: [ "CMD", "pg_isready", "-U", "${POSTGRES_USER}" ]
interval: 5s
timeout: 5s
retries: 12
retries: 6
volumes:
- ./migrations/before:/docker-entrypoint-initdb.d
- postgres_data:/var/lib/postgresql/data
@ -55,10 +58,10 @@ services:
postgres:
condition: service_healthy
healthcheck:
test: "curl --fail http://127.0.0.1:9999/health || exit 1"
test: [ "CMD", "nc", "-z", "localhost", "9999" ]
interval: 5s
timeout: 5s
retries: 12
retries: 6
image: appflowyinc/gotrue:${GOTRUE_VERSION:-latest}
environment:
# There are a lot of options to configure GoTrue. You can reference the example config:
@ -144,9 +147,6 @@ services:
args:
FEATURES: ""
image: appflowyinc/appflowy_cloud:${APPFLOWY_CLOUD_VERSION:-latest}
depends_on:
gotrue:
condition: service_healthy
admin_frontend:
restart: on-failure
@ -159,9 +159,6 @@ services:
- ADMIN_FRONTEND_REDIS_URL=${ADMIN_FRONTEND_REDIS_URL:-redis://redis:6379}
- ADMIN_FRONTEND_GOTRUE_URL=${ADMIN_FRONTEND_GOTRUE_URL:-http://gotrue:9999}
- ADMIN_FRONTEND_APPFLOWY_CLOUD_URL=${ADMIN_FRONTEND_APPFLOWY_CLOUD_URL:-http://appflowy_cloud:8000}
depends_on:
appflowy_cloud:
condition: service_started
ai:
restart: on-failure
@ -171,9 +168,6 @@ services:
- APPFLOWY_AI_SERVER_PORT=${AI_SERVER_PORT}
- APPFLOWY_AI_DATABASE_URL=${AI_DATABASE_URL}
- APPFLOWY_AI_REDIS_URL=${AI_REDIS_URL}
depends_on:
postgres:
condition: service_healthy
appflowy_worker:
restart: on-failure
@ -199,9 +193,7 @@ services:
- APPFLOWY_MAILER_SMTP_USERNAME=${APPFLOWY_MAILER_SMTP_USERNAME}
- APPFLOWY_MAILER_SMTP_EMAIL=${APPFLOWY_MAILER_SMTP_EMAIL}
- APPFLOWY_MAILER_SMTP_PASSWORD=${APPFLOWY_MAILER_SMTP_PASSWORD}
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
minio_data:
# minio_data:

View File

@ -17,6 +17,7 @@ http {
map $http_origin $cors_origin {
# AppFlowy Web origin
~^https?://(.*\.)?straso.com(:\d+)?$ $http_origin;
"~^http://localhost:3000$" $http_origin;
default "null";
}
@ -91,14 +92,14 @@ http {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' $cors_origin always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version, Device-Id' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version' always;
add_header 'Access-Control-Max-Age' 3600 always;
return 204;
}
add_header 'Access-Control-Allow-Origin' $cors_origin always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version, Device-Id' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version' always;
add_header 'Access-Control-Max-Age' 3600 always;
location ~* ^/api/workspace/([a-zA-Z0-9_-]+)/publish$ {
@ -108,14 +109,14 @@ http {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' $cors_origin always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version, Device-Id' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version' always;
add_header 'Access-Control-Max-Age' 3600 always;
return 204;
}
add_header 'Access-Control-Allow-Origin' $cors_origin always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version, Device-Id' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version' always;
add_header 'Access-Control-Max-Age' 3600 always;
}
@ -144,7 +145,7 @@ http {
# Handle CORS
add_header 'Access-Control-Allow-Origin' $cors_origin always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Device-Id' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept' always;
add_header 'Access-Control-Max-Age' 3600 always;
# Timeouts

View File

@ -1,31 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIFRDCCAywCCQDXwkFioxoJ2TANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQGEwJV
UzETMBEGA1UECAwKQ2FsaWZvcm5pYTESMBAGA1UEBwwJU3Vubnl2YWxlMRYwFAYD
VQQKDA1BcHBGbG93eSxJbmMuMRQwEgYDVQQDDAthcHBmbG93eS5pbzAeFw0yMzAz
MTUwMDUxNDVaFw0yNDAzMTQwMDUxNDVaMGQxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
DApDYWxpZm9ybmlhMRIwEAYDVQQHDAlTdW5ueXZhbGUxFjAUBgNVBAoMDUFwcEZs
b3d5LEluYy4xFDASBgNVBAMMC2FwcGZsb3d5LmlvMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA09v/ouq4r7+oLOWqVscYpW5QRLR5O6OYZprocIARAtWA
qBkywhPku/SZq27dtPD7Pi3soSPkMhYDFALai4idgELCFxxkTuHWNm3J+Y8PcMq2
RX325/pQVpOMTkChqaUzh93ynYqv89x3lT9z4saknBde/WO2yOJ6sfED9w+ezYgm
34LV5Z0cofQTDEiTX58KV3MmG5hRMdBwCaDg1jUb3jKr5lBrF4+EHbAN5PWH282V
JdyOTvZp/CF5TcnAMONkYENjURpnSXJes34ufYHkmr0eDa+2pfc3TI5wlB3tPQyN
p+B5TsDCDofv0Zme5Ur42TWcwsG0WRvtDw2KZ98wBtGaIv8UEQjXipNQVzeCv5Yv
zeykjdDhOJ/OZFzsm2vtl55t52M43xYMo3QPmjHMiVYz9KVvPqrVo+O5PI7B7uwY
JxWQIJosUa6AeKfkCAQd8mlNqYylqV8Utqs8b4zee8Vf7hzaCYNKxyDvqsd3yDwE
umh5zVuxJitLchDFT4mv1v3yLHocusV2lwjfEk66R/o5BBDdviycxeAM5Q1lyi7M
RywHAt/eVQNaBq0HSa2vbIm5yTZNQYwuhnNgv035hf8vpu+tFOGepTqgy/CrYpPm
VnsClJVrmxd4LfUZ0aZODiKCVx6psfeBvTXu1r7/SjsmbvYE4ubfM66optyFc3cC
AwEAATANBgkqhkiG9w0BAQsFAAOCAgEAfhSUTP91rBP+8zvsoxomKdeClVFURczr
HO/VuXVmBoKLASFqFcT84usRhb5T6XB7o2GcCYSo0VFJw99UM6nLsZ7c0MKaAjT6
/9VeyLtDfhCDkffGGxpeYhme+0PY8TXIU5aO0ZhQwzXUOiC7t3Ac3AzHTPGrGqOK
aAGhMo7V2bQXcNR6NFhsUlJOtVE59MxL1K5Ug1oMn/H+NUF6/st+KzohruQJSSWG
GcbqVor0zZbFJSvRJ5P3ngw2cg2SIj9w6RwUWMp+a5kOx10fOYrQEHGyTHFlVDy0
yOCU4eVO3EVTm7Se1XVwmG3kNKQaLFJf1voMuYD2sFbZ0nhGJDSZOcGUrchUXPQB
C9MwU52OeNm5VwE/41wLoFvOkJ/I/Ak7vccl1YJXpefa6qjNOFm5X0jA7D4egDfC
IVs5m30qa6Birx0xS6RUuuvxLJyNzgLSzsC1eFwjR2uwIUrGpYo3YI4+bMxp2Wnk
6qtm5G8D1giWg6z0RLw+GSj4QfcJEBP+zyiH/MdB5te9kXVYLKyS+DGgTTatLi1l
MBBK5b7dvfwo08J/sksK+mPHHBsV9TPAkqMp9vuZw25pRAEnvjEOUPfi3X9EZDw7
A3LElN9KDks3IioioAOm0vPvHrlfziSljt5IMkuZLT3lUe6B3cs69caLO0S/ZDTz
yqGwLIqHYos=
MIIF+zCCBOOgAwIBAgIQB8+yKzeKcQUn2JyUn1cROjANBgkqhkiG9w0BAQsFADBu
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
RFYgVExTIENBIC0gRzIwHhcNMjQxMjE4MDAwMDAwWhcNMjUwNDEyMjM1OTU5WjAX
MRUwEwYDVQQDDAwqLnN0cmFzby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDizhKf8P0Cb0q9dRFO1Uv+4B7BgLFA3dJcHaWKI+sAxuv3GuEZi2wC
6yeBacMzuRVKBkWpCpa6f8zUrLntUOAnG5cgzZ6taoon02cw/fJVll943gKaKSOb
S9NAka1ZD2NL0MMARWDNuhU1Zm8cYAKT6Bj9dQTOA6y/i/00Enq9NX5ebrmDeBqs
hDL2x3IEbbKu7itoFfHX/W0PqCpThSWewloeukcktBoM3GI8jTZSB/1K78pvGY5v
pnMrgWHdzv3ynmZ2SM4XfHJ3piXkJpP5zN8HinMNouUlH8OhpftZQNz/BTXEYi2d
tMJa/ylVHGLdKZOqqcBvpipwUGYFTd2rAgMBAAGjggLqMIIC5jAfBgNVHSMEGDAW
gBR435GQX+7erPbFdevVTFVT7yRKtjAdBgNVHQ4EFgQUFCF/4CUhqVaOkQXDaO0Y
Wl+2rkcwIwYDVR0RBBwwGoIMKi5zdHJhc28uY29tggpzdHJhc28uY29tMD4GA1Ud
IAQ3MDUwMwYGZ4EMAQIBMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNl
cnQuY29tL0NQUzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
CCsGAQUFBwMCMIGABggrBgEFBQcBAQR0MHIwJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
Y3NwLmRpZ2ljZXJ0LmNvbTBKBggrBgEFBQcwAoY+aHR0cDovL2NhY2VydHMuZGln
aWNlcnQuY29tL0VuY3J5cHRpb25FdmVyeXdoZXJlRFZUTFNDQS1HMi5jcnQwDAYD
VR0TAQH/BAIwADCCAX0GCisGAQQB1nkCBAIEggFtBIIBaQFnAHYATnWjJ1yaEMM4
W2zU3z9S6x3w4I4bjWnAsfpksWKaOd8AAAGT221LOgAABAMARzBFAiAQG23hZBWR
AWIjb12dywrJGfh6f7uO2SHrC6cKPLElBQIhALJVc0r1qf/Cpss+CEWIVYyIr5gr
okCUv23lvITjffgYAHYAcyAiDwgWivnzxKaLCrJqmkoA7vV3hYoITQUA1KVCRFkA
AAGT221LdAAABAMARzBFAiEA3bR3CerhXHeIqGxs6YT4tcloP4ZauU2D1z8B8zjB
mVUCIATRcw9gLNu4C0LzmkpVwJu395vaR318/DZe+w9PvZNRAHUA5tIxY0B3jMEQ
QQbXcbnOwdJA9paEhvu6hzId/R43jlAAAAGT221LhQAABAMARjBEAiAiKpVNGn0B
qWsq6axCsr0byqD3ZQPA/USjkSYpfzbQowIgFyn6MDVg/SE80XMZBXSB2etw3Rq0
D8vOg9fvn7pmVN8wDQYJKoZIhvcNAQELBQADggEBAKoYTgJXQcsbkUWZGxgmQ7Wq
8bzwPz8RJAmkqj4BMBZYcGYTgHZRHc1tOfxCXbv10DI5IOwlFrCw1JRQrm8vphc1
JcICxsUep9ci8hJEJv3fq5jL0sPTqy6tGQcJXwneCa+nRF9IvLl794UOe2oNwgtq
5pJZ4f6KrertGYeB+lzx/sKGGbOvSHTjHbWFke6N6z8Pe5Yv81EtsY+dsqprfqFV
O8Pp9qITZNDHVvO0tYGl/UYhiVkmWq+zZHX+/80JUu4hYiwrmIqyNA+jZO2CddPA
S/zF7SNafe7kje/N5j3zK8Uzi+M8SrG8kn3lrp0ZBPrbNHPO2tMIIsHbcEA3OPg=
-----END CERTIFICATE-----

View File

@ -1,52 +1,27 @@
-----BEGIN PRIVATE KEY-----
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
Oi+igzFlcelWDZ/eQ8CpDkSpAqtwwx97
-----END PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA4s4Sn/D9Am9KvXURTtVL/uAewYCxQN3SXB2liiPrAMbr9xrh
GYtsAusngWnDM7kVSgZFqQqWun/M1Ky57VDgJxuXIM2erWqKJ9NnMP3yVZZfeN4C
mikjm0vTQJGtWQ9jS9DDAEVgzboVNWZvHGACk+gY/XUEzgOsv4v9NBJ6vTV+Xm65
g3garIQy9sdyBG2yru4raBXx1/1tD6gqU4UlnsJaHrpHJLQaDNxiPI02Ugf9Su/K
bxmOb6ZzK4Fh3c798p5mdkjOF3xyd6Yl5CaT+czfB4pzDaLlJR/DoaX7WUDc/wU1
xGItnbTCWv8pVRxi3SmTqqnAb6YqcFBmBU3dqwIDAQABAoIBAAQh0QEM+O8Ua/4r
pdcT18CbALRxzcjqwaxf9eYgZWWsOhxUZwl6Gsuq0Rtwe9fzZUnl91rvEHPxZB/z
zadfM9ZCkGxOkreCG2ZCWbzww3t/s9mV4eJBIZ7wsLaacNgQibSV5xeYK/1TiJNi
fF+9+A4NynbDrQS72Gfc+w350DamPBFq8oUdDZX27x0RzuxEc0PbV3gedE08EZEa
sWG425+0SSwSeeA0ANZbHnKZplmU49WlO12CI1xf21DWv7OIYfQ3xMg0DSBX5LsO
9eg9o4JDEwtnSNfHrYanzTfPgru2NQ1goO5mBZJ9H2IGu9M6w1JiIPwf2vIU3H/H
UnGsE4ECgYEA8itjFb+Sp1Vf4G5tWH1OPznzTs02KhalARWkkMigpHV8f/fqvs8r
KWbwdf7TZDYBTvqqAjccXxieK3JuxckfyEWrG52XsOYCheraJATE+84an1u3itAu
lSgA9YFOEqv3kmKo5LfbhPsppZwAfNBgpyJzIk+opK9zQbKiq/XbQQsCgYEA78IM
8IJhOhcjO84M6leoxUtBVMmhgzZU0cg3YbVLIWp4sVZ77PWB2yFtrh+wLuW66BaV
Uv6ihP4B6hfTdW1uI/cxrzG0sDDULD0as5JK689gfpqZ0pI/Sen3z370TuaLl+LB
BVum02gTgGmi8LUQFz/DA4aQGgyRjURdEAnC+eECgYEAti+d44a0Nd8suhNZf/EF
JNvcB7Sqww82I5K8s4+8Cv24JC3HFLWWqxceYCbNsd5PLbO2ouQDHCfRFq6IV5Pv
rSN8jtIIhLUFwOnmIqLT7vwnWywM8QmdgekOj6QvsCxfnGlM1oTbSTgLJOQwGbZK
gHKSW4XCQeMcuphBeU0FHfECgYBsKNFnipnL9/YoG5tN+H+liX6OfmuDYvY+sSDy
zjN3fq216rr7OgH71gfBvn/fmDmKS+3PRBoS/vfkIB1/4v8F8JUUYMsPlOeSkXpD
OiLcYHA6jQoJqXotoQPvMmmKUoz01xGWljMbOd9aVc1w422/3z7dj03gwnzDCu0k
uBKiYQKBgBa0ruDkfDA3OzlIAIY51eODhJ73ReXf9CONU52RQ2nk2Oj6oXGFf1qy
l5x0SBZs16tzTBUYSQwC/pm1iyrOgQfOsoaYl7C5/uDxDZ2KH8f3DlWG+g3wKhZ0
Olo1U63Id2TH08jhGWVh9fB9h+Q/y9Z4dI0H6eU5eMQ5uhMLDkzZ
-----END RSA PRIVATE KEY-----