forked from tsai/budibase
8 changed files with 170 additions and 27 deletions
@ -0,0 +1,67 @@ |
|||||
|
version: "3" |
||||
|
|
||||
|
services: |
||||
|
app-service: |
||||
|
build: ./server |
||||
|
volumes: |
||||
|
- ./server:/app |
||||
|
ports: |
||||
|
- "4001:4001" |
||||
|
environment: |
||||
|
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY} |
||||
|
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY} |
||||
|
SELF_HOSTED: ${SELF_HOSTED} |
||||
|
COUCH_DB_URL: http://${COUCH_DB_USER}:${COUCH_DB_PASSWORD}@couchdb-service:5984 |
||||
|
BUDIBASE_ENVIRONMENT: ${BUDIBASE_ENVIRONMENT} |
||||
|
depends_on: |
||||
|
- nginx-service |
||||
|
- minio-service |
||||
|
- couch-init |
||||
|
|
||||
|
minio-service: |
||||
|
image: minio/minio:RELEASE.2020-12-10T01-54-29Z |
||||
|
volumes: |
||||
|
- data1:/data |
||||
|
expose: |
||||
|
- "9000" |
||||
|
environment: |
||||
|
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY} |
||||
|
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY} |
||||
|
command: server /data |
||||
|
healthcheck: |
||||
|
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] |
||||
|
interval: 30s |
||||
|
timeout: 20s |
||||
|
retries: 3 |
||||
|
|
||||
|
nginx-service: |
||||
|
image: nginx:1.19.2-alpine |
||||
|
volumes: |
||||
|
- ./nginx.conf:/etc/nginx/nginx.conf:ro |
||||
|
ports: |
||||
|
- "9000:9000" |
||||
|
depends_on: |
||||
|
- minio-service |
||||
|
|
||||
|
couchdb-service: |
||||
|
image: apache/couchdb:3.0 |
||||
|
environment: |
||||
|
- COUCHDB_PASSWORD=${COUCH_DB_PASSWORD} |
||||
|
- COUCHDB_USER=${COUCH_DB_USER} |
||||
|
ports: |
||||
|
- "5984:5984" |
||||
|
- "4369:4369" |
||||
|
- "9100:9100" |
||||
|
volumes: |
||||
|
- couchdb_data:/couchdb |
||||
|
|
||||
|
couch-init: |
||||
|
image: curlimages/curl |
||||
|
depends_on: |
||||
|
- couchdb-service |
||||
|
command: ["sh","-c","sleep 10 && curl -u ${COUCH_DB_USER}:${COUCH_DB_PASSWORD} -X PUT couchdb-service:5984/_users && curl -u ${COUCH_DB_USER}:${COUCH_DB_PASSWORD} -X PUT couchdb-service:5984/_replicator; fg ; "] |
||||
|
|
||||
|
volumes: |
||||
|
couchdb_data: |
||||
|
driver: local |
||||
|
data1: |
||||
@ -1,6 +1,6 @@ |
|||||
minio_access_key=budibase |
SELF_HOSTED=1 |
||||
minio_secret_key=budibase |
MINIO_ACCESS_KEY=budibase |
||||
minio_port=9000 |
MINIO_SECRET_KEY=budibase |
||||
# specify the following below settings if switching credentials |
COUCH_DB_PASSWORD=budibase |
||||
#minio_secret_key_old=minioadmin |
COUCH_DB_USER=budibase |
||||
#minio_access_key_old=minioadmin |
BUDIBASE_ENVIRONMENT=PRODUCTION |
||||
|
|||||
@ -0,0 +1,4 @@ |
|||||
|
#!/bin/bash |
||||
|
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
||||
|
sudo chmod +x /usr/local/bin/docker-compose |
||||
|
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose |
||||
@ -0,0 +1,65 @@ |
|||||
|
|
||||
|
user nginx; |
||||
|
worker_processes auto; |
||||
|
|
||||
|
error_log /var/log/nginx/error.log warn; |
||||
|
pid /var/run/nginx.pid; |
||||
|
|
||||
|
|
||||
|
events { |
||||
|
worker_connections 1024; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
http { |
||||
|
include /etc/nginx/mime.types; |
||||
|
default_type application/octet-stream; |
||||
|
|
||||
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' |
||||
|
'$status $body_bytes_sent "$http_referer" ' |
||||
|
'"$http_user_agent" "$http_x_forwarded_for"'; |
||||
|
|
||||
|
access_log /var/log/nginx/access.log main; |
||||
|
|
||||
|
sendfile on; |
||||
|
#tcp_nopush on; |
||||
|
|
||||
|
keepalive_timeout 65; |
||||
|
|
||||
|
#gzip on; |
||||
|
|
||||
|
# include /etc/nginx/conf.d/*.conf; |
||||
|
|
||||
|
upstream minio { |
||||
|
server minio:9000; |
||||
|
} |
||||
|
|
||||
|
server { |
||||
|
listen 9000; |
||||
|
listen [::]:9000; |
||||
|
server_name localhost; |
||||
|
|
||||
|
# To allow special characters in headers |
||||
|
ignore_invalid_headers off; |
||||
|
# Allow any size file to be uploaded. |
||||
|
# Set to a value such as 1000m; to restrict file size to a specific value |
||||
|
client_max_body_size 0; |
||||
|
# To disable buffering |
||||
|
proxy_buffering off; |
||||
|
|
||||
|
location / { |
||||
|
proxy_set_header Host $http_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-Proto $scheme; |
||||
|
|
||||
|
proxy_connect_timeout 300; |
||||
|
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1 |
||||
|
proxy_http_version 1.1; |
||||
|
proxy_set_header Connection ""; |
||||
|
chunked_transfer_encoding off; |
||||
|
|
||||
|
proxy_pass http://minio; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1 @@ |
|||||
|
../packages/server/ |
||||
@ -1,20 +1,2 @@ |
|||||
#!/bin/bash |
#!/bin/bash |
||||
|
docker-compose --env-file hosting.properties up |
||||
function dockerInstalled { |
|
||||
echo "Checking docker installation..." |
|
||||
if [ ! -x "$(command -v docker)" ]; then |
|
||||
echo "Please install docker to continue" |
|
||||
exit -1 |
|
||||
fi |
|
||||
} |
|
||||
|
|
||||
dockerInstalled |
|
||||
|
|
||||
source "${BASH_SOURCE%/*}/hosting.properties" |
|
||||
|
|
||||
opts="-e MINIO_ACCESS_KEY=$minio_access_key -e MINIO_SECRET_KEY=$minio_secret_key" |
|
||||
if [ -n "$minio_secret_key_old" ] && [ -n "$minio_access_key_old" ]; then |
|
||||
opts="$opts -e MINIO_SECRET_KEY_OLD=$minio_secret_key_old -e MINIO_ACCESS_KEY_OLD=$minio_access_key_old" |
|
||||
fi |
|
||||
|
|
||||
docker run -p $minio_port:$minio_port $opts -v /mnt/data:/data minio/minio server /data |
|
||||
|
|||||
@ -0,0 +1,20 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
function dockerInstalled { |
||||
|
echo "Checking docker installation..." |
||||
|
if [ ! -x "$(command -v docker)" ]; then |
||||
|
echo "Please install docker to continue" |
||||
|
exit -1 |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
dockerInstalled |
||||
|
|
||||
|
source "${BASH_SOURCE%/*}/hosting.properties" |
||||
|
|
||||
|
opts="-e MINIO_ACCESS_KEY=$minio_access_key -e MINIO_SECRET_KEY=$minio_secret_key" |
||||
|
if [ -n "$minio_secret_key_old" ] && [ -n "$minio_access_key_old" ]; then |
||||
|
opts="$opts -e MINIO_SECRET_KEY_OLD=$minio_secret_key_old -e MINIO_ACCESS_KEY_OLD=$minio_access_key_old" |
||||
|
fi |
||||
|
|
||||
|
docker run -p $minio_port:$minio_port $opts -v /mnt/data:/data minio/minio server /data |
||||
Loading…
Reference in new issue