added outline project and remove openproject
This commit is contained in:
@@ -21,8 +21,8 @@
|
|||||||
"version": "latest"
|
"version": "latest"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "openproject",
|
"name": "outline",
|
||||||
"version": "15"
|
"version": "latest"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"openprojectpostgres": {
|
|
||||||
"POSTGRES_DB": "#DB_NAME",
|
|
||||||
"POSTGRES_USER": "#DB_USER",
|
|
||||||
"POSTGRES_PASSWORD": "#DB_PASSWORD"
|
|
||||||
},
|
|
||||||
"openprojectapp": {
|
|
||||||
"DATABASE_URL": "postgres://#DB_USER:#DB_PASSWORD@openprojectpostgres-db:5432/#DB_NAME?pool=20&encoding=unicode&reconnect=true"
|
|
||||||
}
|
|
||||||
}
|
|
@@ -23,10 +23,10 @@
|
|||||||
"PROXY": "smarthostloadbalancer"
|
"PROXY": "smarthostloadbalancer"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TARGET": "openprojectapp-web"
|
"TARGET": "outline"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"PORT": "8080"
|
"PORT": "3000"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DOMAIN": "#OPENPROJECT_DOMAIN"
|
"DOMAIN": "#OPENPROJECT_DOMAIN"
|
170
outline/env
Normal file
170
outline/env
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
NODE_ENV=production
|
||||||
|
|
||||||
|
# Generate a hex-encoded 32-byte random key. You should use `openssl rand -hex 32`
|
||||||
|
# in your terminal to generate a random value.
|
||||||
|
SECRET_KEY=generate_a_new_key
|
||||||
|
|
||||||
|
# Generate a unique random key. The format is not important but you could still use
|
||||||
|
# `openssl rand -hex 32` in your terminal to produce this.
|
||||||
|
UTILS_SECRET=generate_a_new_key
|
||||||
|
|
||||||
|
# For production point these at your databases, in development the default
|
||||||
|
# should work out of the box.
|
||||||
|
DATABASE_URL=postgres://user:pass@localhost:5432/outline
|
||||||
|
DATABASE_CONNECTION_POOL_MIN=
|
||||||
|
DATABASE_CONNECTION_POOL_MAX=
|
||||||
|
# Uncomment this to disable SSL for connecting to Postgres
|
||||||
|
# PGSSLMODE=disable
|
||||||
|
|
||||||
|
# For redis you can either specify an ioredis compatible url like this
|
||||||
|
REDIS_URL=redis://localhost:6379
|
||||||
|
# or alternatively, if you would like to provide additional connection options,
|
||||||
|
# use a base64 encoded JSON connection option object. Refer to the ioredis documentation
|
||||||
|
# for a list of available options.
|
||||||
|
# Example: Use Redis Sentinel for high availability
|
||||||
|
# {"sentinels":[{"host":"sentinel-0","port":26379},{"host":"sentinel-1","port":26379}],"name":"mymaster"}
|
||||||
|
# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJzZW50aW5lbC0wIiwicG9ydCI6MjYzNzl9LHsiaG9zdCI6InNlbnRpbmVsLTEiLCJwb3J0IjoyNjM3OX1dLCJuYW1lIjoibXltYXN0ZXIifQ==
|
||||||
|
|
||||||
|
# URL should point to the fully qualified, publicly accessible URL. If using a
|
||||||
|
# proxy the port in URL and PORT may be different.
|
||||||
|
URL=
|
||||||
|
PORT=3000
|
||||||
|
|
||||||
|
# See [documentation](docs/SERVICES.md) on running a separate collaboration
|
||||||
|
# server, for normal operation this does not need to be set.
|
||||||
|
COLLABORATION_URL=
|
||||||
|
|
||||||
|
# Specify what storage system to use. Possible value is one of "s3" or "local".
|
||||||
|
# For "local", the avatar images and document attachments will be saved on local disk.
|
||||||
|
FILE_STORAGE=local
|
||||||
|
|
||||||
|
# If "local" is configured for FILE_STORAGE above, then this sets the parent directory under
|
||||||
|
# which all attachments/images go. Make sure that the process has permissions to create
|
||||||
|
# this path and also to write files to it.
|
||||||
|
FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
|
||||||
|
|
||||||
|
# Maximum allowed size for the uploaded attachment.
|
||||||
|
FILE_STORAGE_UPLOAD_MAX_SIZE=262144000
|
||||||
|
|
||||||
|
# Override the maximum size of document imports, generally this should be lower
|
||||||
|
# than the document attachment maximum size.
|
||||||
|
FILE_STORAGE_IMPORT_MAX_SIZE=
|
||||||
|
|
||||||
|
# Override the maximum size of workspace imports, these can be especially large
|
||||||
|
# and the files are temporary being automatically deleted after a period of time.
|
||||||
|
FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=
|
||||||
|
|
||||||
|
# To support uploading of images for avatars and document attachments in a distributed
|
||||||
|
# architecture an s3-compatible storage can be configured if FILE_STORAGE=s3 above.
|
||||||
|
AWS_ACCESS_KEY_ID=get_a_key_from_aws
|
||||||
|
AWS_SECRET_ACCESS_KEY=get_the_secret_of_above_key
|
||||||
|
AWS_REGION=xx-xxxx-x
|
||||||
|
AWS_S3_ACCELERATE_URL=
|
||||||
|
AWS_S3_UPLOAD_BUCKET_URL=http://s3:4569
|
||||||
|
AWS_S3_UPLOAD_BUCKET_NAME=bucket_name_here
|
||||||
|
AWS_S3_FORCE_PATH_STYLE=true
|
||||||
|
AWS_S3_ACL=private
|
||||||
|
|
||||||
|
# –––––––––––––– AUTHENTICATION ––––––––––––––
|
||||||
|
|
||||||
|
# Third party signin credentials, at least ONE OF EITHER Google, Slack,
|
||||||
|
# or Microsoft is required for a working installation or you'll have no sign-in
|
||||||
|
# options.
|
||||||
|
|
||||||
|
# To configure Slack auth, you'll need to create an Application at
|
||||||
|
# => https://api.slack.com/apps
|
||||||
|
#
|
||||||
|
# When configuring the Client ID, add a redirect URL under "OAuth & Permissions":
|
||||||
|
# https://<URL>/auth/slack.callback
|
||||||
|
SLACK_CLIENT_ID=get_a_key_from_slack
|
||||||
|
SLACK_CLIENT_SECRET=get_the_secret_of_above_key
|
||||||
|
|
||||||
|
# To configure Google auth, you'll need to create an OAuth Client ID at
|
||||||
|
# => https://console.cloud.google.com/apis/credentials
|
||||||
|
#
|
||||||
|
# When configuring the Client ID, add an Authorized redirect URI:
|
||||||
|
# https://<URL>/auth/google.callback
|
||||||
|
GOOGLE_CLIENT_ID=
|
||||||
|
GOOGLE_CLIENT_SECRET=
|
||||||
|
|
||||||
|
# To configure Microsoft/Azure auth, you'll need to create an OAuth Client. See
|
||||||
|
# the guide for details on setting up your Azure App:
|
||||||
|
# => https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4
|
||||||
|
AZURE_CLIENT_ID=
|
||||||
|
AZURE_CLIENT_SECRET=
|
||||||
|
AZURE_RESOURCE_APP_ID=
|
||||||
|
|
||||||
|
# To configure generic OIDC auth, you'll need some kind of identity provider.
|
||||||
|
# See documentation for whichever IdP you use to acquire the following info:
|
||||||
|
# Redirect URI is https://<URL>/auth/oidc.callback
|
||||||
|
OIDC_CLIENT_ID=
|
||||||
|
OIDC_CLIENT_SECRET=
|
||||||
|
OIDC_AUTH_URI=
|
||||||
|
OIDC_TOKEN_URI=
|
||||||
|
OIDC_USERINFO_URI=
|
||||||
|
OIDC_LOGOUT_URI=
|
||||||
|
|
||||||
|
# Specify which claims to derive user information from
|
||||||
|
# Supports any valid JSON path with the JWT payload
|
||||||
|
OIDC_USERNAME_CLAIM=preferred_username
|
||||||
|
|
||||||
|
# Display name for OIDC authentication
|
||||||
|
OIDC_DISPLAY_NAME=OpenID Connect
|
||||||
|
|
||||||
|
# Space separated auth scopes.
|
||||||
|
OIDC_SCOPES=openid profile email
|
||||||
|
|
||||||
|
# To configure the GitHub integration, you'll need to create a GitHub App at
|
||||||
|
# => https://github.com/settings/apps
|
||||||
|
#
|
||||||
|
# When configuring the Client ID, add a redirect URL under "Permissions & events":
|
||||||
|
# https://<URL>/api/github.callback
|
||||||
|
GITHUB_CLIENT_ID=
|
||||||
|
GITHUB_CLIENT_SECRET=
|
||||||
|
GITHUB_APP_NAME=
|
||||||
|
GITHUB_APP_ID=
|
||||||
|
GITHUB_APP_PRIVATE_KEY=
|
||||||
|
|
||||||
|
# To configure Discord auth, you'll need to create a Discord Application at
|
||||||
|
# => https://discord.com/developers/applications/
|
||||||
|
#
|
||||||
|
# When configuring the Client ID, add a redirect URL under "OAuth2":
|
||||||
|
# https://<URL>/auth/discord.callback
|
||||||
|
DISCORD_CLIENT_ID=
|
||||||
|
DISCORD_CLIENT_SECRET=
|
||||||
|
|
||||||
|
{"SECRET_KEY": "generate_a_new_key"},
|
||||||
|
{"UTILS_SECRET": "generate_a_new_key"},
|
||||||
|
{"DATABASE_URL": "postgres://user:pass@localhost:5432/outline"},
|
||||||
|
{"AWS_ACCESS_KEY_ID": "get_a_key_from_aws"},
|
||||||
|
{"AWS_SECRET_ACCESS_KEY": "get_the_secret_of_above_key"},
|
||||||
|
{"AWS_REGION": "xx-xxxx-x"},
|
||||||
|
{"AWS_S3_ACCELERATE_URL": ""},
|
||||||
|
{"AWS_S3_UPLOAD_BUCKET_URL": "http://s3:4569"},
|
||||||
|
{"AWS_S3_UPLOAD_BUCKET_NAME": "bucket_name_here"},
|
||||||
|
{"AWS_S3_FORCE_PATH_STYLE": true},
|
||||||
|
{"AWS_S3_ACL": "private"},
|
||||||
|
{"SLACK_CLIENT_ID": "get_a_key_from_slack"},
|
||||||
|
{"SLACK_CLIENT_SECRET": "get_the_secret_of_above_key"},
|
||||||
|
{"GOOGLE_CLIENT_ID": ""},
|
||||||
|
{"GOOGLE_CLIENT_SECRET": ""},
|
||||||
|
{"AZURE_CLIENT_ID": ""},
|
||||||
|
{"AZURE_CLIENT_SECRET": ""},
|
||||||
|
{"AZURE_RESOURCE_APP_ID": ""},
|
||||||
|
{"OIDC_CLIENT_ID": ""},
|
||||||
|
{"OIDC_CLIENT_SECRET": ""},
|
||||||
|
{"OIDC_AUTH_URI": ""},
|
||||||
|
{"OIDC_TOKEN_URI": ""},
|
||||||
|
{"OIDC_USERINFO_URI": ""},
|
||||||
|
{"OIDC_LOGOUT_URI": ""},
|
||||||
|
{"OIDC_USERNAME_CLAIM": "preferred_username"},
|
||||||
|
{"OIDC_DISPLAY_NAME": "OpenID Connect"},
|
||||||
|
{"OIDC_SCOPES": "openid profile email"},
|
||||||
|
{"GITHUB_CLIENT_ID": ""},
|
||||||
|
{"GITHUB_CLIENT_SECRET": ""},
|
||||||
|
{"GITHUB_APP_NAME": ""},
|
||||||
|
{"GITHUB_APP_ID": ""},
|
||||||
|
{"GITHUB_APP_PRIVATE_KEY": ""},
|
||||||
|
{"DISCORD_CLIENT_ID": ""},
|
||||||
|
{"DISCORD_CLIENT_SECRET": ""}
|
||||||
|
|
@@ -52,7 +52,7 @@
|
|||||||
"SOURCE": "coredns"
|
"SOURCE": "coredns"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TARGET": "openprojectapp-web"
|
"TARGET": "outline"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TYPE": "udp"
|
"TYPE": "udp"
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
"TARGET_PORT": "53"
|
"TARGET_PORT": "53"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"COMMENT": "dns for openproject"
|
"COMMENT": "dns for outline"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"EXTRA": "--privileged --rm",
|
"EXTRA": "--privileged --rm",
|
@@ -49,7 +49,7 @@
|
|||||||
"CHAIN": "DOCKER-USER"
|
"CHAIN": "DOCKER-USER"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"SOURCE": "openprojectapp-web"
|
"SOURCE": "outline"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TARGET": "smtp"
|
"TARGET": "smtp"
|
@@ -52,16 +52,16 @@
|
|||||||
"SOURCE": "smarthostbackend"
|
"SOURCE": "smarthostbackend"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TARGET": "openprojectapp-web"
|
"TARGET": "outline"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TYPE": "tcp"
|
"TYPE": "tcp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"TARGET_PORT": "8080"
|
"TARGET_PORT": "3000"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"COMMENT": "proxy for openproject"
|
"COMMENT": "proxy for outline"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"EXTRA": "--privileged --rm",
|
"EXTRA": "--privileged --rm",
|
10
outline/outline-secret.json
Normal file
10
outline/outline-secret.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"outlinepostgres": {
|
||||||
|
"POSTGRES_DB": "#DB_NAME",
|
||||||
|
"POSTGRES_USER": "#DB_USER",
|
||||||
|
"POSTGRES_PASSWORD": "#DB_PASSWORD"
|
||||||
|
},
|
||||||
|
"outlineapp": {
|
||||||
|
"DATABASE_URL": "postgres://#DB_USER:#DB_PASSWORD@outlinepostgres-db:5432/#DB_NAME"
|
||||||
|
}
|
||||||
|
}
|
159
outline/service-outline.json
Normal file
159
outline/service-outline.json
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
{
|
||||||
|
"main": {
|
||||||
|
"SERVICE_NAME": "outline",
|
||||||
|
"DOMAIN": "#OUTLINE_DOMAIN"
|
||||||
|
},
|
||||||
|
"containers": [
|
||||||
|
{
|
||||||
|
"IMAGE": "alpine:latest",
|
||||||
|
"UPDATE": "true",
|
||||||
|
"NAME": "outline-init",
|
||||||
|
"NETWORK": "host",
|
||||||
|
"MEMORY": "64M",
|
||||||
|
"VOLUMES": [
|
||||||
|
{
|
||||||
|
"SOURCE": "USER_DATA",
|
||||||
|
"DEST": "/etc/user/data",
|
||||||
|
"TYPE": "rw"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"SOURCE": "SYSTEM_LOG",
|
||||||
|
"DEST": "/etc/system/log",
|
||||||
|
"TYPE": "rw"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"EXTRA": "--rm",
|
||||||
|
"DEPEND": "null",
|
||||||
|
"START_ON_BOOT": "false",
|
||||||
|
"ENTRYPOINT": "sh -c",
|
||||||
|
"CMD": "mkdir -p /etc/user/data/outline/data && mkdir -p /etc/user/data/outline/db",
|
||||||
|
"PRE_START": "null",
|
||||||
|
"POST_START": "null"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IMAGE": "postgres:13-alpine",
|
||||||
|
"UPDATE": "true",
|
||||||
|
"NAME": "outlinepostgres-db",
|
||||||
|
"MEMORY": "256M",
|
||||||
|
"NETWORK": "outline-net",
|
||||||
|
"SELECTOR": "outlinepostgres-db",
|
||||||
|
"VOLUMES": [
|
||||||
|
{
|
||||||
|
"SOURCE": "/etc/user/data/outline/db",
|
||||||
|
"DEST": "/var/lib/postgresql/data",
|
||||||
|
"TYPE": "rw"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"PORTS": [
|
||||||
|
{
|
||||||
|
"SOURCE": "null",
|
||||||
|
"DEST": "5432",
|
||||||
|
"TYPE": "tcp"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ENV_FILES": [
|
||||||
|
"/etc/user/secret/outline/outline.json"
|
||||||
|
],
|
||||||
|
"EXTRA": "--restart unless-stopped",
|
||||||
|
"DEPEND": "null",
|
||||||
|
"START_ON_BOOT": "false",
|
||||||
|
"CMD": "null",
|
||||||
|
"PRE_START": "null",
|
||||||
|
"POST_START": "null"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IMAGE": "redis:latest",
|
||||||
|
"UPDATE": "true",
|
||||||
|
"NAME": "outlineredis-app",
|
||||||
|
"MEMORY": "128M",
|
||||||
|
"NETWORK": "outline-net",
|
||||||
|
"SELECTOR": "outlineredis",
|
||||||
|
"PORTS": [
|
||||||
|
{
|
||||||
|
"SOURCE": "null",
|
||||||
|
"DEST": "6379",
|
||||||
|
"TYPE": "tcp"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"EXTRA": "--restart always",
|
||||||
|
"DEPEND": "null",
|
||||||
|
"START_ON_BOOT": "false",
|
||||||
|
"CMD": "null",
|
||||||
|
"PRE_START": "null",
|
||||||
|
"POST_START": "null"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"IMAGE": "outlinewiki/outline:latest",
|
||||||
|
"UPDATE": "true",
|
||||||
|
"NAME": "outlineapp",
|
||||||
|
"NETWORK": "outline-net",
|
||||||
|
"SELECTOR": "outline",
|
||||||
|
"VOLUMES": [
|
||||||
|
{
|
||||||
|
"SOURCE": "/etc/user/data/outline/data",
|
||||||
|
"DEST": "/var/lib/outline/data",
|
||||||
|
"TYPE": "rw"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"PORTS": [
|
||||||
|
{
|
||||||
|
"SOURCE": "null",
|
||||||
|
"DEST": "3000",
|
||||||
|
"TYPE": "tcp"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ENVS": [
|
||||||
|
{
|
||||||
|
"NODE_ENV": "production"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DATABASE_CONNECTION_POOL_MIN": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"DATABASE_CONNECTION_POOL_MAX": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"REDIS_URL": "redis://outlineredis-app:6379"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"URL": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"PORT": 3000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"COLLABORATION_URL": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FILE_STORAGE": "local"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FILE_STORAGE_LOCAL_ROOT_DIR": "/var/lib/outline/data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FILE_STORAGE_UPLOAD_MAX_SIZE": 262144000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FILE_STORAGE_IMPORT_MAX_SIZE": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ENV_FILES": [
|
||||||
|
"/etc/user/secret/outline/outline.json"
|
||||||
|
],
|
||||||
|
"EXTRA": "--restart unless-stopped",
|
||||||
|
"DEPEND": [],
|
||||||
|
"START_ON_BOOT": "false",
|
||||||
|
"CMD": "null",
|
||||||
|
"PRE_START": "null",
|
||||||
|
"POST_START": [
|
||||||
|
"firewall-outline",
|
||||||
|
"domain-outline",
|
||||||
|
"firewall-outline-dns",
|
||||||
|
"firewall-outline-smtp"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "openproject",
|
"name": "outline",
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"description": "Postgres database name",
|
"description": "Postgres database name",
|
||||||
@@ -30,8 +30,8 @@
|
|||||||
"generated": "random|sha256|20"
|
"generated": "random|sha256|20"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Please add OpenProject domain:",
|
"description": "Please add Outline domain:",
|
||||||
"key": "OPENPROJECT_DOMAIN",
|
"key": "OUTLINE_DOMAIN",
|
||||||
"value": "",
|
"value": "",
|
||||||
"required": "true"
|
"required": "true"
|
||||||
}
|
}
|
Reference in New Issue
Block a user