a2602f74f029586d71a5e7e2b9ee29072efe57fa
FreeIPA Account Manager
A simple, lightweight web application for managing user profile photos in a FreeIPA server.
Features
- LDAP Authentication: Secure login with existing FreeIPA credentials.
- Profile Management: View user details (Display Name, Email).
- Photo Upload: Users can upload and update their profile picture (
jpegPhotoattribute). - Session Management: Secure, cookie-based sessions with CSRF protection.
- Customizable: Configurable styling (logo, favicon) and LDAP settings.
Prerequisites
- Go 1.20+ installed on your machine.
- Access to an FreeIPA Server.
- A Service Account (Bind DN) with permission to search users and modify the
jpegPhotoattribute.
Setup & Installation
-
Clone the Repository
git clone https://git.astraltech.xyz/gawells/Self-Service-Dashboard cd Self-Service-Dashboard -
Configure the Application Copy the example configuration file to the production path:
cp data/config.example.json data/config.json -
Edit config put in your config values for ldap, and whatevery styling guidelines you would want to use
-
Install Dependencies
go mod tidy -
Run the Server
go run ./src/main/The application will be available at
http://<host>:<port>.
Directory Structure
src/: Go source code (main.go,ldap.go,session.go, etc.).src/pages/: HTML templates for login and profile pages.static/: CSS files, images, and other static assets.data/: Configuration files and local assets (logos).avatars/: Stores cached user profile photos.
License
This project is licensed under the MIT License - see the LICENSE file for details.