Just authenticates you, and sets a cookie. Useful for caddy/traefik forward-auth.
Go to file
Neale Pickett 12f5bf35f6 >1 account 2022-09-07 20:41:23 -06:00
.github/workflows This package isn't called moth 2021-12-05 16:18:36 -07:00
build Add some logging 2022-03-05 15:53:47 -07:00
cmd >1 account 2022-09-07 20:41:23 -06:00
pkg/token I think it actually works now. 2021-12-05 16:16:52 -07:00
static >1 account 2022-09-07 20:41:23 -06:00
README.md >1 account 2022-09-07 20:41:23 -06:00
go.mod >1 account 2022-09-07 20:41:23 -06:00
go.sum >1 account 2022-09-07 20:41:23 -06:00

README.md

Simple Auth

All this does is present a login page. Upon successful login, the browser gets a cookie, and further attempts to access will get the success page.

I made this to use with the Traefik forward-auth middleware. I now use Caddy: it works with that too. All I need is a simple password, that's easy to fill with a password manager. This checks those boxes.

Format of the passwd file

It's just like /etc/shadow.

username:crypted-password

We use sha256, until there's a Go library that supports everything.

There's a program included called crypt that will output lines for this file.

Installation with Traefik

You need to have traefik forward the Path / to this application.

I only use docker swarm. You'd do something like the following:

services:
  my-cool-service:
    # All your cool stuff here
    deploy:
      labels:
        # Keep all your existing traefik stuff
        traefik.http.routers.dashboard.middlewares: forward-auth
        traefik.http.middlewares.forward-auth.forwardauth.address: http://simpleauth:8080/
  simpleauth:
    image: ghcr.io/nealey/simpleauth
    secrets:
      - password
    deploy:
      labels:
        traefik.enable: "true"
        traefik.http.routers.simpleauth.rules: "PathPrefix(`/`)"
        traefik.http.services.simpleauth.loadbalancer.server.port: "8080"

secrets:
  password:
    file: password
    name: password-v1

Note

For some reason that I haven't bothered looking into, I have to first load / in the browser. I think it has something to do with cookies going through traefik simpleauth, and I could probably fix it with some JavaScript, but this is good enough for me.