Skip to content

About

Share auth codes within your team

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Shared Team Authenticator

A web application for teams to organize and share authenticator codes through workspaces and vaults.

WideFix members and codes redacted-1 WideFix authenticator dashboard with redactions-2

Run it locally

Requirements

  • PHP 8.4 or newer with SQLite and Sodium support.
  • Composer 2.
  • Node.js 20.19+ or 22.12+ with npm.
  • Git.

Installation

Clone the repository and install its dependencies:

git clone <repository-url> shared-team-authenticator
cd shared-team-authenticator
composer install
npm ci

Create the local configuration and SQLite database.

On macOS or Linux:

cp .env.example .env
touch database/database.sqlite

On Windows Command Prompt:

copy .env.example .env
type nul > database\database.sqlite

Finish the initial setup:

php artisan key:generate
php artisan vault:key
php artisan migrate
php artisan user:create-admin admin@example.com --workspace="My team"

Start the application:

composer run dev

Open http://127.0.0.1:8001/login and sign in with the account created above. Keep the terminal open while using the application and press Ctrl+C to stop it.

To start the same installation again later, run:

composer run dev

Backups

Your local data is stored in database/database.sqlite, and the keys required to read it are stored in .env. Stop the application and back up both files together.

Never commit .env, regenerate its keys after saving data, or run php artisan migrate:fresh on an installation you want to keep.

Updating

Back up your data, stop the application, and run:

git pull --ff-only
composer install
npm ci
php artisan migrate
composer run dev

Tests

composer test
npm test
npm run build

Troubleshooting

The SQLite database does not exist

Create database/database.sqlite and run:

php artisan migrate

Port 8001 is already in use

Run Laravel and Vite separately on another port:

php artisan serve --host=127.0.0.1 --port=8010
npm run dev

Then open http://127.0.0.1:8010.

Configuration changes are not taking effect

php artisan optimize:clear

Restart the application afterward.

Public deployment

The local development server is only available from your computer. Publishing the application on a network or the internet requires a separate production deployment with HTTPS and a production web server.

See Deploy with Kamal for the repository-specific production configuration.

License

Built by the WideFix team for our own internal use, this tool helps teammates access shared accounts independently, without waiting for someone else to provide an authentication code. You’re welcome to use and adapt it for your own team under the MIT license.

Initial administrator in Docker / Kamal

After the container starts and migrations finish, run:

kamal app exec --interactive --reuse 'php artisan user:create-admin admin@example.com --workspace="My team"'
# Or, with Docker directly:
docker exec -it <container> php artisan user:create-admin admin@example.com --workspace="My team"

The command prompts for a password and confirmation without echoing them. It only works on an installation with no users. Public signup is disabled; administrators invite additional members through workspace invitations.

Login is limited to 5 attempts per minute per email/IP pair, 20 per minute per IP, and 30 per hour per email across IPs. Limits use the configured shared cache.

About

Share auth codes within your team

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages