improve doc

This commit is contained in:
Balakrishnan Balasubramanian 2022-08-17 00:14:42 -04:00
parent f8f05d1f10
commit 09617733cb
2 changed files with 54 additions and 9 deletions

View File

@ -2,16 +2,15 @@
help: ## Show this help help: ## Show this help
@echo 'makepac' @echo 'makepac'
@echo '--------' @echo '--------'
@echo 'Run the below command in the projects main directory for initial setup' @echo 'Simple configuration manager'
@echo '' @echo ''
@echo ' git submodule add https://gitlab.com/balki/makepac' @echo 'See https://gitlab.com/balki/makepac for usage'
@echo ' echo "include makepac/Makefile" > Makefile'
@echo '' @echo ''
@#https://stackoverflow.com/a/47107132 @#https://stackoverflow.com/a/47107132
@sed -ne '/@sed/!s/## //p' $(MAKEFILE_LIST) | column -tl 2 @sed -ne '/@sed/!s/## //p' $(MAKEFILE_LIST) | column -tl 2
.PHONY: install .PHONY: install
install: ## Symlinks files in pac-root install: ## Symlinks files in root/ to real root
sudo ./makepac/install.sh sudo ./makepac/install.sh
.PHONY: sd-reload .PHONY: sd-reload
@ -27,7 +26,7 @@ save-perms: ## Saves the file permissions to ./acl. Run this after adding new f
getfacl --recursive root > acl getfacl --recursive root > acl
.PHONY: set-perms .PHONY: set-perms
set-perms: ## Restores permissions of all the files from ./acl set-perms: ## Restores permissions of all files from ./acl
sudo setfacl --restore acl sudo setfacl --restore acl
.PHONY: skel .PHONY: skel

View File

@ -1,17 +1,63 @@
makepac `makepac` is a simple configuration manager for a linux system
--------
`makepacc` is a simple package manager to keep all file changes in a linux server in a git repository. A typical linux app needs multiple files in different paths spread in the file-system. E.g. systemd service, timer, app config, webserver config, logrotate config. `makepac` keeps all configs in a single place in a git repository and creates symlinks in real root
Easily share the setup to other user.
Initial setup Initial setup
-------------
mkdir myfiles mkdir myfiles
cd myfiles cd myfiles
git init git init
git submodule add https://gitlab.com/balki/makepac' git submodule add https://gitlab.com/balki/makepac'
echo "include makepac/Makefile" > Makefile' echo "include makepac/Makefile" > Makefile'
sudo apt install acl
make skel make skel
git add . git add .
git commit -m 'initial commit' git commit -m 'initial commit'
Now, create all the files inside the `root` directory and run `make install` to have it symlinked to the same path in the real root. Permissions and ownership of the files are recorded with `make save-perms` in `./acl`. After making changes to the system, just make a git commit to record the state
Workflow
--------
1. Create required files under root/
2. Set correct ownership and permissions
3. Run `make intall`
4. Run `make sd-users` and `make sd-reload` if required
5. Enable and test the service and update all configs as required
6. Run `make save-perms` to update `./acl` file
7. Add any important notes in README (like dependencies, additional commands ran)
8. Finally `git commit`
Cloning from other user
-----------------------
git clone <other user repo url>
make set-perms
make install
Usage
-----
make help
makepac
--------
Simple configuration manager
See https://gitlab.com/balki/makepac for usage
help: Show this help
install: Symlinks files in root/ to real root
sd-reload: Run this after editing systemd service/timer files
sd-users: Run this after adding new users
save-perms: Saves the file permissions to ./acl. Run this after adding new files with correct permissions
set-perms: Restores permissions of all files from ./acl
skel: Creates common directories needed
Tips
----
1. When adding a file with no public read permissions, it can't be saved in the git repo. You can git-ignore the file or add read permission for the repo use alone using this command. Also consider setting up [git-crypt](https://www.agwa.name/projects/git-crypt/) for those files
sudo setfacl -m "u:$USER:r" root/etc/app/secret_token