[Outline] An open, extensible, wiki for your team

Outline wiki for YunoHost

Integration level
Install Outline wiki with YunoHost

This package allows you to install Outline wiki quickly and simply on a YunoHost server.
If you don’t have YunoHost, please consult the guide to learn how to install it.

Overview

The fastest wiki and knowledge base for growing teams. Beautiful, feature rich, and markdown compatible.

Features

  • Fully working installation of Outline wiki
  • Including a MinIO server for avatars and picture object storage
  • Including a Dex server to connect to Yunohost’s LDAP userbase using an OIDC auth flow
  • Using Yunohost’s built-in SMTP server for notifications

Shipped version: 0.63.0~ynh2

Demo: Outline

Screenshots

Disclaimers / important information

Not totally free licence

Outline is a softwared licenced under BUSL 1.1 licence.
:warning: That licence is not totally free. Please read it very carefully if you have any commercial use in mind.
The Outline version shipped with this package (v0.63.0) will be released under Apache-2.0 licence after April 15th 2026.

Known limitations

  1. The app can now run in the CI server and reach level 7. However, it is still very young and not broadly tested. Please use it with extreme care if it’s on a prod server
  2. The app requires MinIO app to be installed (MinIO installation and setup is automatic, though)
  3. The app requires Dex app to be installed (Dex installation and setup is automatic, though)
  4. The app is requiring three domains including two fully dedicated (one for MinIO server, one for Dex, one for Outline)
  5. ARM architectures are not yet supported (But it should be achievable soon)
  6. Because it’s built from sources, the app requires an important amount of RAM, disk and time to install properly

How to create an admin user

The first user to login will automatically be granted admin rights
You can then change the user rights by default and/or change the admin user afterwards from the Outline settings page

Documentation and resources

Developer info

Please send your pull request to the testing branch.

To try the testing branch, please proceed like that.

sudo yunohost app install https://github.com/YunoHost-Apps/outline_ynh/tree/testing --debug
or
sudo yunohost app upgrade outline -u https://github.com/YunoHost-Apps/outline_ynh/tree/testing --debug

More info regarding app packaging: Introduction to packaging | Yunohost Documentation


My original post, kept here for history

Bonjour à tous,

I’ve recently discovered Outline wiki tool.
It’s a very nice and fast knowledge base software, open source, that aims at competing with confluence. The design is super elegant and fast, the features are rather simple but very efficient.

The owner of that app uses a SaaS model to fund his project : getoutline.com.
That’s maybe part of why that app is quite difficult to install and that there is not much support or documentation if you want or need to self-host it.

This is why I decided to set myself the challenge of packaging it for Yunohost. This is my first packaging tentative, hence this post where I’ll give you updates about my progress (lots of stuff to learn) and hopefully get a little help from the pro packagers !

Don’t hesitate to fill in issues on Github or make some feedback here, I’ll be very interested.
Any help from you guys would be very welcomed !

12 Likes

Nice project! as for NGINX, a reverse proxy setting like this should be a good start…

location / {

  # Force usage of https
  if ($scheme = http) {
    rewrite ^ https://$server_name$request_uri? permanent;
  }

  proxy_pass        https://127.0.0.1:__PORT__;
  proxy_redirect    off;
  proxy_set_header  Host $host;
  proxy_set_header  X-Real-IP $remote_addr;
  proxy_set_header  X-Forwarded-Proto $scheme;
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header  X-Forwarded-Host $server_name;
  
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
}
2 Likes

Oh, thank you! <3 I have been eyeing at that app for so long.

Ideally, one would use a Passport.js’ LDAP plugin (to connect to YunoHost’s LDAP server). Outline’s team has dedicated theirs to their paid plan (https://github.com/outline/outline/pull/1953#issuecomment-825723299), but nothing is preventing us to write our own. :innocent:

2 Likes

Hi @ericg ! Thanks for your tip. I made a new file with your proposal inside, named outline.conf inside /etc/nginx/conf.d/outline.myserver.fr.d/ folder then restarted nginx.
The only thing I got so far is a redirect to login page on the main domain :sweat_smile:
Any idea on how I could debug my nginx configuration ?

Usually with proxied apps, it is a matter of the app not knowing its actual address. Maybe there is BASE_URL (or whatever its name) config somewhere in there. Another issue can be that the NGINX config requires a slash after the port. Subtle, but significant change for NGINX.

this line would become proxy_pass https://127.0.0.1:__PORT__/;

Usually I work with my browser’s Inspector, to see which pages are loaded and failed to load, along with NGINX’s logs in /var/log/nginx/DOMAIN-access.log, -error.log, etc.

1 Like

Many thanks for your kind help !

I’ve tested a lot of options, with no luck so far…
Is there a way to bypass the SSO ? I have a feeling it’s related to it.
Sometimes when I go to my outline.myserver.fr page, I get a “Please log in to access to this content” (although I’m already logged in!)

Have you shared you app repo? Otherwise it is quite hard to give your appropriate feed backs.

Not yet since I’m still trying to manually install the app
Let me start my repo and share it here

Just added in my edited first post !

1 Like

Great! It looks good. Eric and I have forked your repo. I think we managed to make the app install without issue. If you are OK, I can open a PR to your repo for that.

You could add in your how-to that we need to set up Redirect URLs in Slack’s API:

1 Like

Wow that’s great, thank you so much ! Of course for the PR.
I will definitely improve my readme, I just had no time yesterday and wanted to share my first version with you guys :sweat_smile:
Next step : I’ll jump in the Minio server to add to the install script.

PR merged :+1:

Done :white_check_mark:

Before working on Minio server installation, I have basic questions :sweat_smile:

  1. Can I add more than one sources to app.src ?
  2. Can the installation of a Yunohost app trigger another app install ?

In other words, shall I manage minio as a separate app ?

Sure! Just rename it into like other_source.src and specify the source name to the helper: ynh_setup_source --dest_dir=dest_dir --source_id=other_source (doc)

Good question! I have never seen it I think.
Alternative, for example: Ztncui checks for Zerotier to be installed, and aborts install if does not find it.

# Testing if ZeroTier is installed
yunohost app list | grep -q "id: zerotier" || ynh_die "ZeroTier is needed, but it is not installed. There is a package for that!"
1 Like

I don’t know anything about packaging for YunoHost (yet), but when I installed my_capsule, Gemserv was installed automatically. Is that what you mean?

1 Like

yalh led the way! :ok_hand:

1 Like

I didn’t find Minio app in the wishlist and I don’t really know who would want or need a minio server on his Yunohost instance → I think I’ll go with the first option and just have minio installed in parallel !

Minio looks simple enough, I can try to package it. :innocent:

1 Like

Right now I have a problem : minio seems to have only one download link that is regularly updated https://dl.min.io/server/minio/release/linux-amd64. I would need the checksum to be downloaded from https://dl.min.io/server/minio/release/linux-amd64/minio.sha256sum rather than being hardcoded into the minio.src file

There’s https://dl.min.io/server/minio/release/linux-amd64/archive/ where all the past and current versions are stored. :wink: So that you can keep the “hardcoded” checksum in the src file, it is more safe like that.