.. | ||
docker-compose.yml | ||
entrypoint.sh | ||
nginx.conf | ||
README.md | ||
supervisord.conf |
Docker
You can run 2fauth in a single Docker container.
Features
- Compatible with
amd64
only for now - Stores data in a Sqlite database file
- Runs without root as user with id
1000
and group id1000
Setup
-
Create a directory on your host
2fauth
:mkdir 2fauth
-
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
-
Run the container interactively:
docker run -it --rm -p 8000:8000/tcp \ -v /yourpath/2fauth:/2fauth 2fauth/2fauth
-
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)