Keyportal is a self-service SSH key management platform designed to automate and simplify key distribution in small to medium-sized organizations.
Keyportal automates the SSH key provisioning process, reducing the manual workload for system administrators. It enables users to request access and manage their keys through an intuitive interface, while admins retain full control and visibility.
- Server-rendered management panel for users and administrators
- Agent-based key installation on remote servers
- Live audit logging of actions and access
- User-friendly request interface and key management UI
- Backend: Java (Quarkus)
- Frontend: HTML, CSS, JavaScript
- Database: PostgreSQL
- Message Broker: RabbitMQ
- Runners:
- Agent: systemd service
- Server: Docker container
Ensure the following tools are installed:
gitmakedocker
For Debian-based systems:
sudo apt-get install git makeFor Docker, follow the official guide
- Clone the repository:
git clone https://github.com/Levy-Y/KeyPortal cd KeyPortal - Configure environment:
Edit the.envfile with your preferred credentials.nano .env
- Run the setup script:
(Note: This will prompt for your sudo password)
make setup
After setup completes successfully, the server will be running locally. You can now access the management panel in your browser at http://localhost:80/management/admin, or the key request page at http://localhost:80/
Environment variables in .env control:
- Database credentials and database name
- RabbitMQ credentials
Add the server names in the docker-compose.yml file's keyportal service environment section that match the agent names you configured.
If you have not configured any agents yet, configure at least one according to the guide
Common issues:
- Port conflicts: Ensure port 80 is available or modify the docker-compose.yml
- Database errors: Verify PostgreSQL credentials in .env
The documentation can be found here
A system architecture diagram is available here to illustrate the key components and their interactions.
-
Authentication for both admin and user sides.
-
Email notifications
This project is licensed under the AGPL-3.0 License.
Levente Hagymási
GitHub: @Levy-Y
LinkedIn: in/leventehagymasi
