8000 Improve authentication methods & docker setup · Issue #1177 · outline/outline · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Improve authentication methods & docker setup #1177

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
gempain opened this issue Feb 15, 2020 · 17 comments
Closed

Improve authentication methods & docker setup #1177

gempain opened this issue Feb 15, 2020 · 17 comments
Labels
self-hosted Issues related to self-hosting the code

Comments

@gempain
Copy link
gempain commented Feb 15, 2020

Hi there,

First, I'd like to say that I tried your wiki with a local install and I loved the experience, really, truly graceful and beautifully designed - kind of has a feeling of Ghost.

I am a bit disappointed that at almost 8k stars, the only way to authenticate is Slack. I would expect email auth first, then cool stuff like Slack. I'd also love to see things like Mattermost, which is a self hosted Slack clone. Storage wise, I'm fine with AS3 because there is a fake AS3 image that we can use as an alternative. Slack, however, can't be swapped.

I've seen issues/PRs on this repo trying to integrate various authentication mechanisms, and I think adding them would really boost adoption of this project. Six months ago, what stopped us from using Outline internally was a lack of authentication mechanisms and ease of docker setup.

In our case, we use Mattermost as a self-hosted Slack alternative. I gave a shot at writing the Mattermost integration, but it seems that the current project structure isn't really friendly for adding new authentication mechanisms, so I gave up.

Docker wise, it's getting there, but I feel like it's still too complex. Users should be able to spin up an outline instance in 5 minutes on any Docker-compatible machine, without having to clone, install dependencies, create a .env, etc. I would suggest:

  • a Docker image published on Docker Hub (I found this one but there's no docs)
  • no need to install dependencies (looking at the Dockerfile of the image mentioned above, I see a yarn install but can't be sure of what it really does and how to use the image). For this, just package node_modules with your Dockerfile, or bundle them with webpack.
  • no need for a .env file, just provide those values as Docker environment variables

You've got awesome features and a great UI/UX, but the devX and sysadminX isn't so smooth, but I'm looking forward to seeing this project grow.

Keep up the great work !

@gempain gempain changed the title Authentication methods & docker setup Improve authentication methods & docker setup Feb 15, 2020
@arjunv
Copy link
arjunv commented Feb 15, 2020

Looks like the pull #1088 which allows logging in with email accounts was already merged. But it only allows one to add guests who doesn't have google/slack and not to setup the whole thing without those.

This is a really stupid decision for an open source software to take tbh.

It should be as simple as :

  • Generate an admin user password in the CLI while starting for the first time
  • When the admin logs into the web, have that password changed forcibly
  • Allow admin to setup whatever authentication methods he need in the console
  • There should be a non smtp based adding of users too. ie the admin generates a user:pass pair which is given to a 3rd party in whatever secure channel he prefers to. On that user's first login, have that password forcibly changed so the admin cannot snoop in.

@tommoor
Copy link
Member
tommoor commented Feb 17, 2020

a Docker image published on Docker Hub (I found this one but there's no docs)

What kind of help do you think should exist for running the docker container outside of that already in the README?

no need to install dependencies (looking at the Dockerfile of the image mentioned above, I see a yarn install but can't be sure of what it really does and how to use the image). For this, just package node_modules with your Dockerfile, or bundle them with webpack.

Would accept a PR for this. At that point I think we'd have to separate the production and development docker files. Right now the one published on dockerhub is the same as used for dev.

no need for a .env file, just provide those values as Docker environment variables

You don't need an env file currently, it's just a convenience.

@tommoor tommoor added question self-hosted Issues related to self-hosting the code labels Feb 17, 2020
@Araly
Copy link
Araly commented Feb 19, 2020

Being able to use a simple email / password combo to sign up would make me able to use the project, and I'm sure there are a lot of people in my situation.

I don't have a Slack or a Google account associated to a company or other things like that. I'm starting a group, and we don't use Slack nor Google, and don't intend to use them, as everything is self hosted.

edit:
Documentation for the docker would be nice in some form of steps to install. A list of commands for example. If I manage to find some time I'll try to install an instance of Outline and add it to my docker-compose, and report back with my notes, that could hopefully make its way into a "how to docker" or something.

I've created a Slack organization, see what I can do with it

@gempain
Copy link
Author
gempain commented Feb 19, 2020

@Araly the development setup is fairly straightfoward. However the best case scenario for production would be something like:

docker run --url http://localhost:3000 -p 3000:3000 outline/outline

then get a screen that asks for a username and password, and done, you're in.

@grv231
Copy link
grv231 commented Mar 24, 2020

I wanted to understand if there has been any movement on this. We are actively using a self-hosted outline (dockerized), but now we are moving out of google auth to Onelogin auth (as an org). Now, I am stuck thinking about what to do here. I cannot use slack as a means to login into outline. Any suggestions? Just updated the docker image to the latest tag (0.41.0), but still stuck :/

@tommoor
Copy link
Member
tommoor commented Mar 25, 2020

There has been some movement on the branch at #1183 – once the auth library is moved over it should make the addition of new authentication methods much simpler.

@Araly
Copy link
Araly commented Mar 29, 2020

I had issues installing Outline in my traefik docker setup, so I moved to Nextcloud for the use I wanted of it. Maybe later I'll come back, but for now Outline is too complicated (needing s3 for storage, slack for logging, I was having issues actually logging in at all)

@mavrick
Copy link
mavrick commented Jul 14, 2020

s3 storage is very easy to get setup, you just need a basic IAM role with S3 access that you can give to outline. the usage should fall within the AWS free tier or only cost you cents on the dollar.

you dont need slack for signin, you can setup google signin easily enough.

the docker image at this time runs yarn build which isn't ideal so can take some time to boot up initially. hopefully we'll see some improvements there in the near future.

all in all outline is very easy to setup with docker. if you're struggling perhaps you should look at a paid version instead?

you don't need the .env file and can just use ENV_VARS (from my experience atleast).

The docker image you pointed to work perfectly fine (from my experience atleast).

I think you should take another look to ensure you haven't missed anything in the process.

@arjunv
Copy link
arjunv commented Jul 17, 2020

Reiterating my original sentiment. Outline is too good to not be able to run without any additional integrations.
Whatever happened to keeping things simple first and then adding integrations?

@gempain
Copy link
Author
gempain commented Jul 17, 2020

@arjunv using s3 / google / slack does make sense in early development stages as you don't have to deal with managing password reset, email verification, storage, etc. But once you bring your product to market, email / password is a must have if you don't want to constraint your users. That said, there has been tremendous progress with #1183 which is targeted for August/September so I think we just have to wait now 😄

if you're struggling perhaps you should look at a paid version instead?

I think you're missing the point of this issue here.

@tommoor
Copy link
Member
tommoor commented Jul 18, 2020

Update, as of version v0.45.0 there is no longer a build step on docker startup.

@lpil
Copy link
lpil commented Sep 23, 2020

Authentication without Google or Slack would be a great benefit to me! Outline looks great but my projects do not use gsuite or Slack, so we are unable to use Outline.

@houtbyte
Copy link

When can we expect that outline supports simple mail login? Only with this requirement we could use it in our company.

@siraht
Copy link
siraht commented Jan 19, 2021

I'd love to use Outline for my organization, as well, and am unable to, so long as Google, Slack, or any other sub-optimal-privacy authentication options are the only ones available.

@almereyda
Copy link

After #1934, there is now a pluggable authentication module, based on passport.js, which allows to implement new strategies quickly. See #1953 for an example.

@tommoor
Copy link
Member
tommoor commented Apr 17, 2021

Thanks for filing this @gempain – I'm going to close this issue now, it's been a year since it was filed and there has been significant progress on the individual points in the original description, of particular note:

  • It is now possible to authenticate with Google, Slack or Microsoft for this community edition. The authentication has also been remodeled around passport strategies as of last month to make additional authentication methods pluggable.

  • There is an official docker image and the docs have been updated to focus around installation with Docker. There is no longer a need to install dependencies as there was a year ago and in general the setup process has been smoothed out.

  • The docker image now does a much better job of letting you know when config is missing or incorrect.

There is another more specific issue here for local authentication that I'd point folks interested in that to: #1881

@gempain
Copy link
Author
gempain commented Apr 19, 2021

@tommoor thanks a lot for following up on this. I've now been using outline daily for a year and it's a real pleasure to write in it. Thanks for your great work !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
self-hosted Issues related to self-hosting the code
Projects
None yet
Development

No branches or pull requests

10 participants
0