KeyRoll is a web application built with Symfony 7 that simplifies SSH key management and deployment across multiple servers. It allows system administrators to easily manage and deploy SSH keys to remote hosts.
- SSH Key Management: Create, store, and manage SSH public keys
- Host Management: Store and manage connection details for remote servers
- Automated Key Deployment: Deploy keys to multiple servers with a single command
- User Authentication: Secure user accounts and role-based access control
- Docker Support: Ready-to-use Docker setup for development and production
- Modern UI: Clean interface using Tailwind CSS v4 and DaisyUI
- PHP 8.4 or higher
- Composer
- A supported database (e.g., MariaDB >= 10.5, MySQL >= 8.0)
- Web Server (e.g., Nginx, Apache) or use the built-in Symfony server for development.
- Node.js 22 or higher (Primarily for frontend asset building with Tailwind/DaisyUI)
- npm (or yarn/pnpm)
- Docker and Docker Compose (Recommended for standardized development and deployment)
-
Clone the repository:
git clone https://github.com/adrianzech/keyroll.git cd keyroll -
Copy environment configuration:
cp docker/.env.dist docker/.env
-
Customize environment variables in
docker/.env -
Start the containers:
cd docker docker compose up -d -
Access KeyRoll at
http://localhost:9000(or the port you configured)
-
Clone the repository:
git clone https://github.com/username/keyroll.git cd keyroll -
Install PHP dependencies:
composer install
-
Install frontend dependencies:
npm install
-
Configure your environment:
cp .env .env.local
Edit
.env.localwith your database settings and other configurations -
Create database schema:
php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate
-
Generate SSH key for KeyRoll to use:
php bin/console app:ssh-key:generate
-
Build frontend assets:
php bin/console tailwind:build php bin/console asset-map:compile
-
Start the local development server:
symfony server:start
-
Tailwind Compilation:
php bin/console tailwind:build --watch
-
Code Quality:
composer cs-check # Run PHP CS Fixer (dry-run) composer cs-fix # Run PHP CS Fixer and fix issues composer phpstan # Run PHPStan static analysis composer phpmd # Run PHP Mess Detector composer code-analysis # Run all code quality tools
The Docker setup includes:
- PHP 8.4 FPM container
- MariaDB 11.4 database
- Basic health checks and automatic migrations
The repository includes a CI/CD pipeline configuration for GitHub Actions that:
- Runs all code quality checks
- Builds a production-ready Docker image
- Pushes the image to GitHub Container Registry