Leaning Project!
PackageLock aims to be the distro-agnostic 🔋-included one-stop Solution for patchmanagement on linux systems.
Explore the docs (COMING SOON!) »
View Demo (COMING SOON!)
·
Report Bug (COMING SOON!)
·
Request Feature (COMING SOON)
Table of Contents
I created PackageLock from the need to have a one-stop platform for package and software-management on my linux servers. I wanted to design and create a system that allowed me to create....
TODO: create getting started guide TODO: general deployment?
Install docker. Thats it.
sudo docker run -p 8080:8080 hilkopterbob/packagelock
-
download the docker-compose file:
~/ $: wget https://github.com/HilkopterBob/PackageLock/blob/master/docker-compose.yml
-
get the default config & rename it to
config.yml
:
~/ $: wget https://github.com/HilkopterBob/PackageLock/blob/master/default-config.yml
~/ $: mv default-config.yml config.yml
- edit the config
- run docker compose:
~/ $: docker-compose up -d
The default-config:
general:
debug: true
production: false
database:
address: 127.0.0.1
port: 8000
username: root
password: root
network:
fqdn: 0.0.0.0
port: 8080
ssl: true
ssl-config:
allowselfsigned: true
certificatepath: ./certs/testing.crt
privatekeypath: ./certs/testing.key
redirecthttp: true
TODO: explain usage
- backend-api to manage Agents & Hosts
- frontend to visualize backend data
- installable agent as background daemon
- agent CLI:
-
packagelock id
-> returns agent id
-
- config management
- TLS Encryption
- Best Practice based Package Layout
- Check Vars and Func-Names for naming convention
- persistent storage
- implement interfaces for external functions for easier mocking in tests
- systemd service start/stop/enable/disable
- copy app file (.deb/rpm/binary) via SFTP to host and start stop
- binary self-Update
- agent can run docker/podman containers
- agent fetches running docker/podman containers, updates, restarts etc
- user management & SSH keys
- system definition in mpackagelock file for easy recovery & scaling
- CLI-Commands to add:
- sync now|timestamp - force sync the server with the Agents
- logs -s (severity) info|warning|error -d (date to start) 2024-08-23-10-00-00 (date-time)
- backup - Creates a backup from server, server config, database
- generate certs letsencrypt - lets encrypt certs
- generate certs letsencrypt renew - renews
- test - runs healthchecks on server
- test agents - runs healthchecks on agents
TODO: create Issue template: See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Project Link: https://github.com/HilkopterBob/PackageLock