SSH key manager with automatic updates, user and group management
View Demo
·
Report Bug
·
Pull request
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
### Built With
This section list major frameworks/libraries used
* 
* 
* 
* 
* 
## 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
```
## 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
## License
Distributed under the MIT License. See `LICENSE.txt` for more information.