diff --git a/README.md b/README.md new file mode 100644 index 0000000..9f333ba --- /dev/null +++ b/README.md @@ -0,0 +1,152 @@ +
+
+ + 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. +
  3. + Getting started + +
  4. +
  5. Roadmap
  6. +
  7. License
  8. +
+
+ + + +## 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 + +_Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services._ + +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)