Hermes is a FastAPI powered employee management web application.
It allows you to manage your employees, their roles, and their onboarding/offboarding status.
- Add, edit, and delete employees
- Assign roles to employees
- Onboard and Offboard employees
- View and search employee details and history
- Upload employee contracts
- Generate reports on employee data
- Create test admin account with unique employee checks and confirmation boxes
- Automated Slack and E-mail triggers with employee onboarding, updating or offboarding
- Security notification for access to privileges data
- API call for generating active employee lists
- Customise Hermes with your company's logo and color scheme
You can install the project locally, and run it as you see fit, or you could run it in a docker container.
- Clone the repository:
git clone https://github.com/DarthTigerson/Hermes.git
- Install the dependencies:
pip install -r requirements.txt
- Create a
.env
file and set the environment variables (see.env.example
for an example) - Give executable permissions to the launcher script:
chmod +x run.sh
- Run the application:
./run.sh
To run this over HTTPS, you will need your cert files. You can read more about that here.
- Clone the repository:
git clone https://github.com/DarthTigerson/Hermes.git
- Install the dependencies:
pip install -r requirements.txt
- Create a
.env
file and set the environment variables (see.env.example
for an example) - Give executable permissions to the launcher script:
chmod +x run.sh
- Execute the
run.sh
script with the following parameters:run.sh <KEYFILE_PATH> <CERTFILE_PATH>
This way, Hermes will be running, available to your network, on port 443, with HTTPS.
It is possible to build your own docker image from the Dockerfile
in this repository.
Although, the preferred way to do it is to pull a prebuilt image.
This project creates a local database on your system. So in order to use this in a container,
you need to link an empty directory from your host system to the container.
- Clone the repository:
git clone https://github.com/DarthTigerson/Hermes.git
- Build the image from the Dockerfile
docker build --tag <YOUR_TAG> .
- Create and run a container from the image:
docker run --mount type=bind,source=<DB_FILE_PATH>,target=/hermes/db -p 8000:8000 <YOUR_TAG>
Learn more on running docker containers.
- Pull the image from Dockerhub:
docker pull w3edd/hermes:latest
- Run the docker image and set the forwarding web port:
docker run --mount type=bind,source=<DB_FILE_PATH>,target=/hermes/db -p 8000:8000 w3edd/hermes:latest
Learn more on running docker containers.
Note
If running manually, on the first run, you need to set the database by running the python startup.py
script.
The default username and password for the admin user are hermes
and hermes
, respectively.
- To start the server, execute the
run.sh
script. You can optionally, runuvicorn
manually instead:uvicorn main:app --reload
- Open your web browser and go to
http://localhost:8000
- Use the navigation menu to access the different features of the application
- To add a new employee, click the "Add Employee" button and fill out the form. Click "Save" to add the employee.
- To edit an existing employee, go to the employee details page and click the "Edit" button. Make the necessary changes and click "Save" to update the employee.
- To delete an employee, go to the employee details page and click the "Delete" button. Confirm the deletion when prompted.
- To assign a role to an employee, go to the employee details page and select a role from the dropdown menu. Click "Save" to assign the role.
- To create a test admin account, click the "Create Test Admin" button and follow the prompts.
Note
When running uvicorn
manually, you need to set the ip address and port where the service will be running.
For example: uvicorn main:app --reload --host 0.0.0.0 --port 8000
To make the service available for your network, you have to set the host to 0.0.0.0
Contributions are welcome! If you find a bug or have a feature request, please open an issue on GitHub. If you want to contribute code, please fork the repository and create a pull request.
This project is licensed under the MIT License. See the LICENSE
file for details.