Logo

AccessGate

SSH key manager with automatic updates, user and group management

View Demo · Report Bug · Pull request

Table of contents
  1. What is AccessGate ?
  2. Getting started
  3. Roadmap
  4. License
## What is AccessGate You need to manage ssh keys for a project requiring multiple servers and groups, without having to manage them manually? This project lets you manage multiple servers with group permissions (server <-> group <-> user) from a clean, efficient web interface with github authentication for simpler management/security. Few key points: * Automatic key update when access is modified * Permissions assigned to groups for more global management * Restricted access per user, or with a single login on servers

(back to top)

### Built With This section list major frameworks/libraries used * ![](https://img.shields.io/badge/Nodejs-20232A?style=for-the-badge&logo=nodedotjs) * ![](https://img.shields.io/badge/Express-20232A?style=for-the-badge&logo=express) * ![](https://img.shields.io/badge/SqLite-20232A?style=for-the-badge&logo=sqlite&logoColor=blue) * ![](https://img.shields.io/badge/GitHub%20OAUTH-20232A?style=for-the-badge&logo=github) * ![](https://img.shields.io/badge/Bootstrap-20232A?style=for-the-badge&logo=bootstrap)

(back to top)

## Getting Started Now let's see how to set up an accessgate instance. ### Prerequisites First, install the dependencies required, don't forget to update your system before continuing * NodeJS 18+ ```sh curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - apt install nodejs -y ``` * PM2 ```sh npm i -g pm2 ``` * Git ```sh apt install git -y ``` ### Installation 1. Create directory ```sh mkdir /opt/accessgate cd /opt/accessgate ``` 2. Clone the repo in the directory ```sh git clone https://github.com/itsmrval/accessgate.git . ``` 3. Install NPM packages ```sh npm install ``` 4. Copy and rename `exemple.env` ```js cp exemple.env .env ``` 5. Complete `.env` * GITHUB_CLIENT_ID & GITHUB_CLIENT_SECRET with your [Github app](https://github.com/settings/developers) * SESSION_SECRET with a secured random string 6. Run with PM2 ```js pm2 start index.js pm2 save ```

(back to top)

## Roadmap - [x] Group and user management - [x] Automatic server setup script - [x] Multi user on one server - [x] Admin area with key & username editing - [ ] Permission management by non-admin user - [ ] Non-admin users can add servers - [ ] Multi-language - [x] English - [ ] French

(back to top)

## License Distributed under the MIT License. See `LICENSE.txt` for more information.

(back to top)