|
1 | | -# Backend Component - Linux ACL Management Interface |
| 1 | +# Linux ACL Management Interface - Backend Component |
2 | 2 |
|
3 | | -Securing Linux Storage with ACLs: An Open-Source Web Management Interface for Enhanced Data Protection. |
| 3 | +A robust web-based management interface for Linux Access Control Lists (ACLs), designed to enhance data protection and simplify ACL administration. This project provides a modern, user-friendly solution for managing file system permissions in Linux environments. |
4 | 4 |
|
5 | | -Progress Docs: https://pythonhacker24.github.io/linux-acl-management/ |
| 5 | +[](https://opensource.org/licenses/MIT) |
6 | 6 |
|
7 | | -## Releases |
| 7 | +[View Documentation](https://pythonhacker24.github.io/linux-acl-management/) |
8 | 8 |
|
9 | | -- `main`: Production Branch |
10 | | -- `development-v<version_name>`: Development Branch of specific version |
| 9 | +## Features |
11 | 10 |
|
12 | | -## Documentation |
| 11 | +- Intuitive web interface for ACL management |
| 12 | +- High-performance backend written in Go |
| 13 | +- Real-time ACL updates |
| 14 | +- Comprehensive ACL reporting and visualization |
| 15 | +- Integration with OpenLDAP for authentication |
13 | 16 |
|
14 | | -To be written ... |
| 17 | +## Quick Start |
15 | 18 |
|
16 | | -## Progress Report |
| 19 | +### Prerequisites |
17 | 20 |
|
18 | | -To be written ... |
| 21 | +- Go 1.20 or higher |
| 22 | +- Docker (optional) |
| 23 | +- Redis |
| 24 | +- OpenLDAP server |
| 25 | + |
| 26 | +### Local Installation |
| 27 | + |
| 28 | +1. Clone the repository: |
| 29 | + ```bash |
| 30 | + git clone https://github.com/yourusername/linux-acl-management.git |
| 31 | + cd linux-acl-management |
| 32 | + ``` |
| 33 | + |
| 34 | +2. Install dependencies: |
| 35 | + ```bash |
| 36 | + go mod download |
| 37 | + ``` |
| 38 | + |
| 39 | +3. Build the application: |
| 40 | + ```bash |
| 41 | + go build -o acl-manager |
| 42 | + ``` |
| 43 | + |
| 44 | +### Production Build |
| 45 | + |
| 46 | +For production build, it is recommended to use the Makefile. This allows you to build the complete binary on locally for security purposes. Since the project is in development mode, complete local build is not possible since dependencies are managed via GitHub and external vendors. Tarball based complete local builds will be developed in later stages. |
| 47 | + |
| 48 | +1. Clone the repository: |
| 49 | + ```bash |
| 50 | + git clone https://github.com/yourusername/linux-acl-management.git |
| 51 | + cd linux-acl-management |
| 52 | + ``` |
| 53 | + |
| 54 | +2. Use make: |
| 55 | + ```bash |
| 56 | + make build |
| 57 | + ``` |
| 58 | + |
| 59 | +3. Execute the binary |
| 60 | + ```bash |
| 61 | + ./bin/laclm --config config.yaml |
| 62 | + ``` |
| 63 | + |
| 64 | +### Docker Testbench Deployment |
| 65 | + |
| 66 | +A simulated environment has been developed on docker-compose for testing and experimenting purposes. It's not a production level build but a training ground for testing your config.yaml file for specific scenario. |
| 67 | +
|
| 68 | +```bash |
| 69 | +docker-compose up -d |
| 70 | +``` |
| 71 | +
|
| 72 | +A complete optional Docker based deployment option will be developed in later stages of development |
| 73 | +
|
| 74 | +## Usage |
| 75 | +
|
| 76 | +1. Start the server: |
| 77 | + ```bash |
| 78 | + ./acl-manager |
| 79 | + ``` |
| 80 | +
|
| 81 | +2. Access the api at `http://<ip-address>:<port>` |
| 82 | +
|
| 83 | +3. Configure your settings in `config.yaml` |
| 84 | +
|
| 85 | +For detailed usage instructions, please refer to our [documentation](https://pythonhacker24.github.io/linux-acl-management/). |
| 86 | +
|
| 87 | +## Project Structure |
| 88 | +
|
| 89 | +``` |
| 90 | +. |
| 91 | +├── cmd/ # Application entry points |
| 92 | +├── internal/ # Private application code |
| 93 | +├── pkg/ # Public library code |
| 94 | +├── api/ # API definitions and handlers |
| 95 | +├── docs/ # Documentation |
| 96 | +└── deployments/ # Deployment configurations |
| 97 | +``` |
| 98 | +
|
| 99 | +## Development |
| 100 | +
|
| 101 | +### Branches |
| 102 | +
|
| 103 | +- `main`: Production-ready code |
| 104 | +- `development-v<version>`: Development branches for specific versions |
| 105 | +
|
| 106 | +### Contributing |
| 107 | +
|
| 108 | +1. Fork the repository |
| 109 | +2. Create your feature branch (`git checkout -b feature/amazing-feature`) |
| 110 | +3. Commit your changes (`git commit -m 'Add some amazing feature'`) |
| 111 | +4. Push to the branch (`git push origin feature/amazing-feature`) |
| 112 | +5. Open a Pull Request |
| 113 | +
|
| 114 | +Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and development process. |
19 | 115 |
|
20 | 116 | ## About |
21 | 117 |
|
22 | | -- **Organization:** Department of Biomedical Informatics, Emory University |
23 | | -- **Program:** Google Summer of Code 2025 |
24 | | -- **Contributor:** Aditya Patil |
25 | | -- **Mentors:** Robert Tweedy, Mahmoud Zeydabadinezhad, PhD |
| 118 | +This project is developed as part of Google Summer of Code 2025, in collaboration with the Department of Biomedical Informatics at Emory University. |
26 | 119 |
|
27 | | -This project is part of Google Summer of Code 2025, undertaken with the Department of Biomedical Informatics at Emory University. |
| 120 | +### Team |
28 | 121 |
|
29 | | -## Technologies Used |
| 122 | +- **Contributor:** Aditya Patil |
| 123 | +- **Mentors:** |
| 124 | + - Robert Tweedy |
| 125 | + - Mahmoud Zeydabadinezhad, PhD |
30 | 126 |
|
31 | | -- **Programming Languages:** Golang |
32 | | -- **Frameworks/Libraries:** net/http |
33 | | -- **Standards/Protocols:** gRPC, REST |
34 | | -- **Tools:** Tarball, Redis, Docker, OpenLDAP |
| 127 | +### Technologies |
| 128 | +
|
| 129 | +- **Backend:** Golang, net/http |
| 130 | +- **API:** gRPC, REST |
| 131 | +- **Infrastructure:** Docker, Redis, OpenLDAP |
| 132 | +- **Packaging:** Tarball |
35 | 133 |
|
36 | 134 | ## License |
37 | 135 |
|
38 | | -This project is licensed under the MIT License - see the LICENSE file for details. |
| 136 | +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. |
| 137 | +
|
| 138 | +## Acknowledgments |
| 139 | +
|
| 140 | +- Department of Biomedical Informatics, Emory University |
| 141 | +- Google Summer of Code Program |
| 142 | +- Open Source Community |
0 commit comments