2FAuth/docker
2021-08-04 10:22:26 -04:00
..
docker-compose.yml Remove support for mysql 2021-08-04 09:35:55 -04:00
entrypoint.sh Log out version, commit and build date at start 2021-08-04 10:19:24 -04:00
nginx.conf Remove nginx commented lines 2021-08-02 12:51:26 -04:00
README.md Add section to build image for specific release to docker readme 2021-08-04 10:22:26 -04:00
supervisord.conf Use absolute paths in supervisor config 2021-08-02 12:35:12 -04:00

Docker

Build status

dockeri.co

You can run 2fauth in a single Docker container.

Features

  • Latest size
  • Compatible with amd64 only for now
  • Stores data in a Sqlite database file
  • Runs without root as user with id 1000 and group id 1000

Setup

  1. Create a directory on your host 2fauth:

    mkdir 2fauth
    
  2. If your host is not Windows: since the container runs without root as user 1000:1000, you need to fix the ownership and permissions of that directory:

    chown 1000:1000 2fauth
    chmod 700 2fauth
    
  3. Run the container interactively:

    docker run -it --rm -p 8000:8000/tcp \
    -v /yourpath/2fauth:/2fauth 2fauth/2fauth
    
  4. Access it at http://localhost:8000

You can stop it with CTRL+C.

  • You can also run it in the background by replacing -it --rm with -d.
  • You can set environment variables available (see the .env.example) with -e, for example -e APP_NAME=2FAuth.
  • You can also use the docker-compose.yml with docker-compose and modify it as you wish.

Use an existing SQLite file

If you already have an SQLite file, move it to /yourpath/2fauth/database.sqlite on your host before starting the container. Don't forget to fix its ownership and permissions if you run on *nix:

chown 33:33 /yourpath/2fauth/database.sqlite
chmod 700 /yourpath/2fauth/database.sqlite

The container will automagically pick it up.

Update

The Docker image 2fauth/2fauth is built on every commit pushed to the master branch.

You can therefore pull the image with docker pull 2fauth/2fauth and restart the container to update it.

Build the image

You can build the image from the master branch with docker and git using:

docker build -t 2fauth/2fauth https://github.com/Bubka/2FAuth.git

Build the image for a specific release

You can build a specific release by appending the release tag with #<release-tag> to the command. For example:

docker build -t 2fauth/2fauth https://github.com/Bubka/2FAuth.git#v2.1.0

Build the image for a specific commit

You can build a specific commit (see master's commits) by appending the commit hash with #<commit-hash> to the command. For example:

docker build -t 2fauth/2fauth https://github.com/Bubka/2FAuth.git#fba9e29bd4e3bb697296bb0bde60ae869537528b

Implementation details

  • The container is based on debian:buster-slim
  • The container runs an Nginx server together with PHP-FPM as a system service.
  • The /srv directory holds the repository data and PHP code.
  • The /2fauth directory is targeted for the container end users.
  • By default the container logs the Nginx logs and the PHP-FPM logs. The application logs can be found in /2fauth/storage/logs.

TODOs

  • Base image (or other image) on Alpine (for a possibly smaller image)