Skip to content

Instantly share code, notes, and snippets.

@walski
Last active November 4, 2023 22:42
Show Gist options
  • Save walski/e5d5b7ddb781f028b071b6ca12c460cd to your computer and use it in GitHub Desktop.
Save walski/e5d5b7ddb781f028b071b6ca12c460cd to your computer and use it in GitHub Desktop.

[0.72.2]

  • Initial version
{
"title": "Outline",
"author": "Outline Authors",
"version": "0.7.2",
"upstreamVersion": "0.7.2",
"description": "file://DESCRIPTION.md",
"tagline": "Collaborative knowledge base",
"icon": "file://icon-256.png",
"mediaLinks": [
"https://www.getoutline.com/images/screenshot.png",
"https://www.getoutline.com/images/comment-in-code.png",
"https://www.getoutline.com/images/link-previews.png"
],
"website": "https://www.getoutline.com/",
"changelog": "file://CHANGELOG.md",
"postInstallMessage": "file://POSTINSTALL.md",
"tags": [
"docs",
"collaborative",
"document",
"editor",
"notes",
"markdown"
],
"healthCheckPath": "/",
"httpPort": 3000,
"addons": {
"localstorage": {},
"redis": {
"noPassword": false
},
"postgresql": {},
"oidc": {
"loginRedirectUri": "/auth/oidc.callback",
"logoutRedirectUri": "/",
"tokenSignatureAlgorithm": "RS256"
},
"sendmail": {}
},
"manifestVersion": 2,
"memoryLimit": 1048576000
}

About

The fastest knowledge base for growing teams. Beautiful, realtime collaborative, feature packed, and markdown compatible.

Features

  • Open source
  • Translated in 17+ languages
  • Built in public (see Changelog)
  • Integrate and embed content from over 20 other tools
# Use an official Ubuntu as a parent image
FROM cloudron/base:4.2.0@sha256:46da2fffb36353ef714f97ae8e962bd2c212ca091108d768ba473078319a47f4
RUN apt-get update
RUN apt-get install -y ca-certificates curl gnupg curl
# Install Yarn
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update && apt-get install -y yarn
RUN mkdir -p /app/code
WORKDIR /app/code
RUN git clone https://github.com/outline/outline.git /app/code
RUN curl -L https://github.com/outline/outline/archive/refs/tags/v0.72.2.tar.gz -o outline.tar.gz
RUN tar -xzf outline.tar.gz -C /app/code --strip-components=1
RUN rm outline.tar.gz
# Install and build the outline project
RUN yarn install --frozen-lockfile && yarn build
ADD start.sh /app/code/start.sh
RUN chmod +x /app/code/start.sh
ADD outline_env.sh /app/code/outline_env.sh
CMD [ "/app/code/start.sh" ]
MIT License (MIT)
Copyright (c) 2023 Thorben Starsy
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#!/bin/bash
# –––––––––––––––– REQUIRED ––––––––––––––––
export NODE_ENV=production
# Read values from files
SECRET_KEY_CONTENT=$(cat /app/data/.secret_key)
UTILS_SECRET_CONTENT=$(cat /app/data/.utils_secret)
export SECRET_KEY=$SECRET_KEY_CONTENT
export UTILS_SECRET=$UTILS_SECRET_CONTENT
export DATABASE_URL=$CLOUDRON_POSTGRESQL_URL
export DATABASE_CONNECTION_POOL_MIN=5
export DATABASE_CONNECTION_POOL_MAX=20
export PGSSLMODE=disable
export REDIS_URL="redis://default:$CLOUDRON_REDIS_PASSWORD@$CLOUDRON_REDIS_HOST:$CLOUDRON_REDIS_PORT"
export URL=$CLOUDRON_APP_ORIGIN
export PORT=3000
export FILE_STORAGE=local
export FILE_STORAGE_LOCAL_ROOT_DIR=/app/data/storage
export FILE_STORAGE_UPLOAD_MAX_SIZE=26214400
# –––––––––––––– AUTHENTICATION ––––––––––––––
export OIDC_CLIENT_ID=$CLOUDRON_OIDC_CLIENT_ID
export OIDC_CLIENT_SECRET=$CLOUDRON_OIDC_CLIENT_SECRET
export OIDC_AUTH_URI=$CLOUDRON_OIDC_AUTH_ENDPOINT
export OIDC_TOKEN_URI=$CLOUDRON_OIDC_TOKEN_ENDPOINT
export OIDC_USERINFO_URI=$CLOUDRON_OIDC_PROFILE_ENDPOINT
export OIDC_USERNAME_CLAIM=preferred_username
export OIDC_DISPLAY_NAME=Cloudron
export OIDC_SCOPES="openid profile email"
export FORCE_HTTPS=false
export ENABLE_UPDATES=false # Does not work with the read-only filesystem
export WEB_CONCURRENCY=2
export MAXIMUM_IMPORT_SIZE=5120000
export LOG_LEVEL=info
export SMTP_HOST=$CLOUDRON_MAIL_SMTP_SERVER
export SMTP_PORT=$CLOUDRON_MAIL_SMTP_PORT
export SMTP_USERNAME=$CLOUDRON_MAIL_SMTP_USERNAME
export SMTP_PASSWORD=$CLOUDRON_MAIL_SMTP_PASSWORD
export SMTP_FROM_EMAIL=$CLOUDRON_MAIL_FROM
export SMTP_REPLY_EMAIL=$CLOUDRON_MAIL_FROM
export SMTP_SECURE=true
export DEFAULT_LANGUAGE=en_US

Simply sign in using your Cloudron account.

To complete the installation, check the status in https://$CLOUDRON-APP-FQDN/checkup .

#!/bin/bash
set -eu
if [[ ! -f /app/data/.initialized ]]; then
echo "Fresh installation, setting up folders..."
mkdir -p /app/data/storage
echo "Generating secrets..."
openssl rand -hex 32 > /app/data/.secret_key
openssl rand -hex 32 > /app/data/.utils_secret
fi
source /app/code/outline_env.sh
if [[ ! -f /app/data/.initialized ]]; then
echo "Setting up DB..."
yarn db:migrate --env=production-ssl-disabled
chown -R cloudron:cloudron /app/data
chown -R cloudron:cloudron /app/code
touch /app/data/.initialized
echo "Done."
fi
/usr/local/bin/gosu cloudron:cloudron yarn start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment