{"id":28418524,"url":"https://github.com/norkzyt/wolflith","last_synced_at":"2025-10-10T03:32:16.565Z","repository":{"id":41520377,"uuid":"509608379","full_name":"NorkzYT/Wolflith","owner":"NorkzYT","description":"Streamline Your Docker Deployments with One Command","archived":false,"fork":false,"pushed_at":"2025-06-27T12:59:59.000Z","size":8181,"stargazers_count":16,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-27T13:43:43.125Z","etag":null,"topics":["ansible","cli","debian","docker","docker-compose","linux","proxmox","ubuntu","unraid"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NorkzYT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"NorkzYT","custom":["https://paypal.me/PolymathNorkz"]}},"created_at":"2022-07-01T23:01:01.000Z","updated_at":"2025-04-09T10:21:55.000Z","dependencies_parsed_at":"2023-10-04T17:18:28.566Z","dependency_job_id":"a49378d8-9c9b-4a87-9fa6-b2c48e6320cf","html_url":"https://github.com/NorkzYT/Wolflith","commit_stats":null,"previous_names":["norkzyt/wolflith"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/NorkzYT/Wolflith","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorkzYT%2FWolflith","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorkzYT%2FWolflith/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorkzYT%2FWolflith/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorkzYT%2FWolflith/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NorkzYT","download_url":"https://codeload.github.com/NorkzYT/Wolflith/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NorkzYT%2FWolflith/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262375691,"owners_count":23301338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","cli","debian","docker","docker-compose","linux","proxmox","ubuntu","unraid"],"created_at":"2025-06-04T11:17:30.620Z","updated_at":"2025-10-10T03:32:16.560Z","avatar_url":"https://github.com/NorkzYT.png","language":"Shell","funding_links":["https://github.com/sponsors/NorkzYT","https://paypal.me/PolymathNorkz"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"Docs/content/assets/img/wolflith-cover-rl.png\" width=\"490\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eStreamline Your Docker Deployments with One Command\u003c/p\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003c!-- Contributions Welcome Badge --\u003e\n  \u003ca href=\"CODE_OF_CONDUCT.md\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/contributions-welcome-brightgreen?logo=github\" alt=\"Contributions Welcome\"\u003e\n  \u003c/a\u003e\n  \u003c!-- Commits per Month --\u003e\n  \u003ca href=\"https://github.com/NorkzYT/Wolflith/pulse\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/commit-activity/m/NorkzYT/Wolflith\" alt=\"Commits-per-month\"\u003e\n  \u003c/a\u003e\n  \u003c!-- License Badge --\u003e\n  \u003ca href=\"https://github.com/NorkzYT/Wolflith/blob/main/LICENSE\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-GNUv3-purple\" alt=\"License\"\u003e\n  \u003c/a\u003e\n  \u003c!-- Contributor Covenant Badge --\u003e\n  \u003ca href=\"https://contributor-covenant.org/version/2/1/code_of_conduct/\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Contributor%20Covenant-2.1-purple\" alt=\"Contributor Covenant 2.1\"\u003e\n  \u003c/a\u003e\n  \u003c!-- Github Stars Badge --\u003e\n  \u003ca href=\"https://github.com/NorkzYT/Wolflith/stargazers\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/NorkzYT/Wolflith\" alt=\"Github Stars\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## About\n\nWolflith is a revolutionary toolkit crafted to redefine the deployment of Docker containers, enabling both novices and experts to manage docker services efficiently across Linux environments. With a robust foundation in Ansible for seamless orchestration, it offers a remarkably simple yet powerful one-command solution to deploy a diverse array of docker services or even your customized ones, across any number of machines. Designed for the tech enthusiast seeking efficiency without the hassle, Wolflith promises a significant reduction in deployment time and complexity, making it the go-to solution for those dedicated to streamlining their tech stacks in Docker-centric platforms. Experience the ease of managing your digital projects with Wolflith, where simplicity meets functionality.\n\nNote: This repository is in BETA and still a work in progress, I welcome contributions to expand its capabilities and usability.\n\n## How to Install\n\n```bash\nsudo wget -qO /opt/PCSInstall.sh https://raw.githubusercontent.com/NorkzYT/Wolflith/main/PCSMenu/PCSInstall.sh\nsudo chmod +x /opt/PCSInstall.sh\nsudo /opt/PCSInstall.sh --branch=\"main\"\n```\n\n## Contributing\n\nPlease see the [contributing guide](./CONTRIBUTING.md)\n\n## Credits\n\nCreated by NorkzYT with 💛\n\n► Twitch \u003chttps://www.twitch.tv/polymathnorkz\u003e\n\n► Discord \u003chttps://discord.com/users/282100214024896522\u003e\n\n► GitHub \u003chttps://github.com/NorkzYT\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand the repo tree\u003c/summary\u003e\n\n\u003c!-- tree generated by repoTree.py starts here --\u003e\n\n- [.env.example](./.env.example)\n- [**.github**](./.github)\n  - [CODEOWNERS](./.github/CODEOWNERS)\n  - [FUNDING.yml](./.github/FUNDING.yml)\n  - [**ISSUE_TEMPLATE**](./.github/ISSUE_TEMPLATE)\n    - [bug_report.yml](./.github/ISSUE_TEMPLATE/bug_report.yml)\n    - [feature_request.yml](./.github/ISSUE_TEMPLATE/feature_request.yml)\n  - [PULL_REQUEST_TEMPLATE.md](./.github/PULL_REQUEST_TEMPLATE.md)\n  - [**workflows**](./.github/workflows)\n    - [changelog.yml](./.github/workflows/changelog.yml)\n    - [gitlab-sync.yml](./.github/workflows/gitlab-sync.yml)\n    - [lint.yml](./.github/workflows/lint.yml)\n    - [release.yml](./.github/workflows/release.yml)\n- [.gitignore](./.gitignore)\n- [.prettierignore](./.prettierignore)\n- [.prettierrc.yaml](./.prettierrc.yaml)\n- [.releaserc.json](./.releaserc.json)\n- [**.vscode**](./.vscode)\n  - [extensions.json](./.vscode/extensions.json)\n  - [settings.json](./.vscode/settings.json)\n- [**Ansible**](./Ansible)\n  - [README.md](./Ansible/README.md)\n  - [**adhoc**](./Ansible/adhoc)\n    - [adhoc.md](./Ansible/adhoc/adhoc.md)\n  - [**collections**](./Ansible/collections)\n    - [requirements.yml](./Ansible/collections/requirements.yml)\n  - [**inventory**](./Ansible/inventory)\n    - [ansible.cfg](./Ansible/inventory/ansible.cfg)\n    - [hosts.example.yaml](./Ansible/inventory/hosts.example.yaml)\n  - [**playbooks**](./Ansible/playbooks)\n    - [1password.yml](./Ansible/playbooks/1password.yml)\n    - [ansible-upgrade.yml](./Ansible/playbooks/ansible-upgrade.yml)\n    - [apt.yml](./Ansible/playbooks/apt.yml)\n    - [binfmt.yml](./Ansible/playbooks/binfmt.yml)\n    - [docker-update.yml](./Ansible/playbooks/docker-update.yml)\n    - [docker.yml](./Ansible/playbooks/docker.yml)\n    - [fail2ban.yml](./Ansible/playbooks/fail2ban.yml)\n    - [iftop.yml](./Ansible/playbooks/iftop.yml)\n    - [lvm-fix.yml](./Ansible/playbooks/lvm-fix.yml)\n    - [oh-my-zsh.yml](./Ansible/playbooks/oh-my-zsh.yml)\n    - [password-change.yml](./Ansible/playbooks/password-change.yml)\n    - [provision-docker-service.yml](./Ansible/playbooks/provision-docker-service.yml)\n    - [provision-proxmox-lxc.yml](./Ansible/playbooks/provision-proxmox-lxc.yml)\n    - [qemu-guest-agent.yml](./Ansible/playbooks/qemu-guest-agent.yml)\n    - [reboot-required.yml](./Ansible/playbooks/reboot-required.yml)\n    - [reboot.yml](./Ansible/playbooks/reboot.yml)\n    - [resize-lvm.yml](./Ansible/playbooks/resize-lvm.yml)\n    - [run-custom-command.yml](./Ansible/playbooks/run-custom-command.yml)\n    - [ssh-get-key.yml](./Ansible/playbooks/ssh-get-key.yml)\n    - [timezone.yml](./Ansible/playbooks/timezone.yml)\n    - [user-creation.yml](./Ansible/playbooks/user-creation.yml)\n    - [zsh.yml](./Ansible/playbooks/zsh.yml)\n    - [zsh_powerlevel10k.yml](./Ansible/playbooks/zsh_powerlevel10k.yml)\n  - [**static**](./Ansible/static)\n    - [.p10k.zsh](./Ansible/static/.p10k.zsh)\n    - [addCifsShare.sh](./Ansible/static/addCifsShare.sh)\n  - [**templates**](./Ansible/templates)\n    - [timesyncd.conf](./Ansible/templates/timesyncd.conf)\n- [**Auto**](./Auto)\n  - [dependencies.sh](./Auto/dependencies.sh)\n  - [environmentSetup.sh](./Auto/environmentSetup.sh)\n  - [modifyComposeFiles.sh](./Auto/modifyComposeFiles.sh)\n  - [setup.sh](./Auto/setup.sh)\n- [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)\n- [CONTRIBUTING.md](./CONTRIBUTING.md)\n- [**Docker**](./Docker)\n  - [**AMD64**](./Docker/AMD64)\n    - [**appflowy**](./Docker/AMD64/appflowy)\n      - [.env.example](./Docker/AMD64/appflowy/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/appflowy/docker-compose.yml)\n    - [**browserless**](./Docker/AMD64/browserless)\n      - [.env.example](./Docker/AMD64/browserless/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/browserless/docker-compose.yml)\n    - [**discord**](./Docker/AMD64/discord)\n      - [.env.example](./Docker/AMD64/discord/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/discord/docker-compose.yml)\n    - [**docker-osx**](./Docker/AMD64/docker-osx)\n      - [.env.example](./Docker/AMD64/docker-osx/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/docker-osx/docker-compose.yml)\n    - [**dupeguru**](./Docker/AMD64/dupeguru)\n      - [.env.example](./Docker/AMD64/dupeguru/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/dupeguru/docker-compose.yml)\n    - [**gitlab**](./Docker/AMD64/gitlab)\n      - [.env.example](./Docker/AMD64/gitlab/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/gitlab/docker-compose.yml)\n    - [**guacd**](./Docker/AMD64/guacd)\n      - [docker-compose.yml](./Docker/AMD64/guacd/docker-compose.yml)\n    - [**krusader**](./Docker/AMD64/krusader)\n      - [.env.example](./Docker/AMD64/krusader/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/krusader/docker-compose.yml)\n    - [**langflow**](./Docker/AMD64/langflow)\n      - [docker-compose.yml](./Docker/AMD64/langflow/docker-compose.yml)\n    - [**meshcentral**](./Docker/AMD64/meshcentral)\n      - [.env.example](./Docker/AMD64/meshcentral/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/meshcentral/docker-compose.yml)\n    - [**pwm**](./Docker/AMD64/pwm)\n      - [docker-compose.yml](./Docker/AMD64/pwm/docker-compose.yml)\n    - [**shinpuru**](./Docker/AMD64/shinpuru)\n      - [.env.example](./Docker/AMD64/shinpuru/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/shinpuru/docker-compose.yml)\n    - [**webnut**](./Docker/AMD64/webnut)\n      - [.env.example](./Docker/AMD64/webnut/.env.example)\n      - [docker-compose.yml](./Docker/AMD64/webnut/docker-compose.yml)\n  - [**ARM64**](./Docker/ARM64)\n    - [**gitlab**](./Docker/ARM64/gitlab)\n      - [.env.example](./Docker/ARM64/gitlab/.env.example)\n      - [docker-compose.yml](./Docker/ARM64/gitlab/docker-compose.yml)\n    - [**squid-auth**](./Docker/ARM64/squid-auth)\n      - [.env.example](./Docker/ARM64/squid-auth/.env.example)\n      - [docker-compose.yml](./Docker/ARM64/squid-auth/docker-compose.yml)\n  - [**Both**](./Docker/Both)\n    - [**1password**](./Docker/Both/1password)\n      - [1password-credentials.example.json](./Docker/Both/1password/1password-credentials.example.json)\n      - [docker-compose.yml](./Docker/Both/1password/docker-compose.yml)\n    - [**adminer**](./Docker/Both/adminer)\n      - [docker-compose.yml](./Docker/Both/adminer/docker-compose.yml)\n    - [**apacheguacamole**](./Docker/Both/apacheguacamole)\n      - [.env.example](./Docker/Both/apacheguacamole/.env.example)\n      - [docker-compose.yml](./Docker/Both/apacheguacamole/docker-compose.yml)\n    - [**authelia**](./Docker/Both/authelia)\n      - [.env.example](./Docker/Both/authelia/.env.example)\n      - [**config**](./Docker/Both/authelia/config)\n        - [configuration.yml](./Docker/Both/authelia/config/configuration.yml)\n        - [users_database.yml](./Docker/Both/authelia/config/users_database.yml)\n      - [docker-compose.yml](./Docker/Both/authelia/docker-compose.yml)\n    - [**authentik**](./Docker/Both/authentik)\n      - [.env.example](./Docker/Both/authentik/.env.example)\n      - [docker-compose.yml](./Docker/Both/authentik/docker-compose.yml)\n    - [**backuponepass**](./Docker/Both/backuponepass)\n      - [.env.example](./Docker/Both/backuponepass/.env.example)\n      - [docker-compose.yml](./Docker/Both/backuponepass/docker-compose.yml)\n    - [**binfmt**](./Docker/Both/binfmt)\n      - [docker-compose.yml](./Docker/Both/binfmt/docker-compose.yml)\n    - [**bitwardensync**](./Docker/Both/bitwardensync)\n      - [.env.example](./Docker/Both/bitwardensync/.env.example)\n      - [docker-compose.yml](./Docker/Both/bitwardensync/docker-compose.yml)\n    - [**bookstack**](./Docker/Both/bookstack)\n      - [.env.example](./Docker/Both/bookstack/.env.example)\n      - [docker-compose.yml](./Docker/Both/bookstack/docker-compose.yml)\n    - [**cloudcmd**](./Docker/Both/cloudcmd)\n      - [docker-compose.yml](./Docker/Both/cloudcmd/docker-compose.yml)\n    - [**cloudflared**](./Docker/Both/cloudflared)\n      - [.env.example](./Docker/Both/cloudflared/.env.example)\n      - [**config**](./Docker/Both/cloudflared/config)\n        - [config.yaml](./Docker/Both/cloudflared/config/config.yaml)\n      - [docker-compose.yml](./Docker/Both/cloudflared/docker-compose.yml)\n    - [**codeserver**](./Docker/Both/codeserver)\n      - [.env.example](./Docker/Both/codeserver/.env.example)\n      - [docker-compose.yml](./Docker/Both/codeserver/docker-compose.yml)\n      - [dockerfile](./Docker/Both/codeserver/dockerfile)\n      - [wolflith.code-workspace](./Docker/Both/codeserver/wolflith.code-workspace)\n    - [**cryptgeon**](./Docker/Both/cryptgeon)\n      - [.env.example](./Docker/Both/cryptgeon/.env.example)\n      - [docker-compose.yml](./Docker/Both/cryptgeon/docker-compose.yml)\n    - [**dashy**](./Docker/Both/dashy)\n      - [.env.example](./Docker/Both/dashy/.env.example)\n      - [docker-compose.yml](./Docker/Both/dashy/docker-compose.yml)\n    - [**db-backup**](./Docker/Both/db-backup)\n    - [**discordchatexporter**](./Docker/Both/discordchatexporter)\n      - [.env.example](./Docker/Both/discordchatexporter/.env.example)\n      - [docker-compose.yml](./Docker/Both/discordchatexporter/docker-compose.yml)\n      - [schedule_discord_exporter.sh](./Docker/Both/discordchatexporter/schedule_discord_exporter.sh)\n    - [**docker-socket-proxy**](./Docker/Both/docker-socket-proxy)\n      - [docker-compose.yml](./Docker/Both/docker-socket-proxy/docker-compose.yml)\n    - [**doublecommander**](./Docker/Both/doublecommander)\n      - [.env.example](./Docker/Both/doublecommander/.env.example)\n      - [docker-compose.yml](./Docker/Both/doublecommander/docker-compose.yml)\n    - [**dozzle**](./Docker/Both/dozzle)\n      - [.env.example](./Docker/Both/dozzle/.env.example)\n      - [docker-compose.yml](./Docker/Both/dozzle/docker-compose.yml)\n    - [**dupeguru**](./Docker/Both/dupeguru)\n      - [.env.example](./Docker/Both/dupeguru/.env.example)\n      - [docker-compose.yml](./Docker/Both/dupeguru/docker-compose.yml)\n    - [**duplicati**](./Docker/Both/duplicati)\n      - [.env.example](./Docker/Both/duplicati/.env.example)\n      - [docker-compose.yml](./Docker/Both/duplicati/docker-compose.yml)\n    - [**endlessh**](./Docker/Both/endlessh)\n      - [.env.example](./Docker/Both/endlessh/.env.example)\n      - [docker-compose.yml](./Docker/Both/endlessh/docker-compose.yml)\n    - [**firefly-iii**](./Docker/Both/firefly-iii)\n      - [.env.example](./Docker/Both/firefly-iii/.env.example)\n      - [docker-compose.yml](./Docker/Both/firefly-iii/docker-compose.yml)\n    - [**flame**](./Docker/Both/flame)\n      - [.env.example](./Docker/Both/flame/.env.example)\n      - [docker-compose.yml](./Docker/Both/flame/docker-compose.yml)\n    - [**floatplane-downloader**](./Docker/Both/floatplane-downloader)\n      - [.env.example](./Docker/Both/floatplane-downloader/.env.example)\n      - [docker-compose.yml](./Docker/Both/floatplane-downloader/docker-compose.yml)\n    - [**gatus**](./Docker/Both/gatus)\n      - [.env.example](./Docker/Both/gatus/.env.example)\n      - [**config**](./Docker/Both/gatus/config)\n        - [config.yaml](./Docker/Both/gatus/config/config.yaml)\n      - [docker-compose.yml](./Docker/Both/gatus/docker-compose.yml)\n    - [**gitlabrunner**](./Docker/Both/gitlabrunner)\n      - [.env.example](./Docker/Both/gitlabrunner/.env.example)\n      - [docker-compose.yml](./Docker/Both/gitlabrunner/docker-compose.yml)\n    - [**gokapi**](./Docker/Both/gokapi)\n      - [docker-compose.yml](./Docker/Both/gokapi/docker-compose.yml)\n    - [**grafana**](./Docker/Both/grafana)\n      - [docker-compose.yml](./Docker/Both/grafana/docker-compose.yml)\n    - [**grocy**](./Docker/Both/grocy)\n      - [.env.example](./Docker/Both/grocy/.env.example)\n      - [docker-compose.yml](./Docker/Both/grocy/docker-compose.yml)\n    - [**homechart**](./Docker/Both/homechart)\n      - [.env.example](./Docker/Both/homechart/.env.example)\n      - [docker-compose.yml](./Docker/Both/homechart/docker-compose.yml)\n    - [**influxdb**](./Docker/Both/influxdb)\n      - [.env.example](./Docker/Both/influxdb/.env.example)\n      - [docker-compose.yml](./Docker/Both/influxdb/docker-compose.yml)\n    - [**invidious**](./Docker/Both/invidious)\n      - [.env.example](./Docker/Both/invidious/.env.example)\n      - [**config**](./Docker/Both/invidious/config)\n        - [**docker**](./Docker/Both/invidious/config/docker)\n          - [init-invidious-db.sh](./Docker/Both/invidious/config/docker/init-invidious-db.sh)\n        - [**sql**](./Docker/Both/invidious/config/sql)\n          - [annotations.sql](./Docker/Both/invidious/config/sql/annotations.sql)\n          - [channel_videos.sql](./Docker/Both/invidious/config/sql/channel_videos.sql)\n          - [channels.sql](./Docker/Both/invidious/config/sql/channels.sql)\n          - [nonces.sql](./Docker/Both/invidious/config/sql/nonces.sql)\n          - [playlist_videos.sql](./Docker/Both/invidious/config/sql/playlist_videos.sql)\n          - [playlists.sql](./Docker/Both/invidious/config/sql/playlists.sql)\n          - [session_ids.sql](./Docker/Both/invidious/config/sql/session_ids.sql)\n          - [users.sql](./Docker/Both/invidious/config/sql/users.sql)\n          - [videos.sql](./Docker/Both/invidious/config/sql/videos.sql)\n      - [docker-compose.yml](./Docker/Both/invidious/docker-compose.yml)\n    - [**joplin**](./Docker/Both/joplin)\n      - [.env.example](./Docker/Both/joplin/.env.example)\n      - [docker-compose.yml](./Docker/Both/joplin/docker-compose.yml)\n    - [**kasm**](./Docker/Both/kasm)\n      - [docker-compose.yml](./Docker/Both/kasm/docker-compose.yml)\n    - [**linkace**](./Docker/Both/linkace)\n      - [.env.example](./Docker/Both/linkace/.env.example)\n      - [docker-compose.yml](./Docker/Both/linkace/docker-compose.yml)\n    - [**linkwarden**](./Docker/Both/linkwarden)\n      - [.env.example](./Docker/Both/linkwarden/.env.example)\n      - [docker-compose.yml](./Docker/Both/linkwarden/docker-compose.yml)\n    - [**littlelinkserver**](./Docker/Both/littlelinkserver)\n      - [.env.example](./Docker/Both/littlelinkserver/.env.example)\n      - [docker-compose.yml](./Docker/Both/littlelinkserver/docker-compose.yml)\n    - [**mariadb**](./Docker/Both/mariadb)\n      - [.env.example](./Docker/Both/mariadb/.env.example)\n      - [docker-compose.yml](./Docker/Both/mariadb/docker-compose.yml)\n    - [**memcached**](./Docker/Both/memcached)\n      - [.env.example](./Docker/Both/memcached/.env.example)\n      - [docker-compose.yml](./Docker/Both/memcached/docker-compose.yml)\n    - [**mongodb**](./Docker/Both/mongodb)\n      - [.env.example](./Docker/Both/mongodb/.env.example)\n      - [docker-compose.yml](./Docker/Both/mongodb/docker-compose.yml)\n    - [**monitorss**](./Docker/Both/monitorss)\n      - [.env.example](./Docker/Both/monitorss/.env.example)\n      - [docker-compose.yml](./Docker/Both/monitorss/docker-compose.yml)\n    - [**n8n**](./Docker/Both/n8n)\n      - [.env.example](./Docker/Both/n8n/.env.example)\n      - [docker-compose.yml](./Docker/Both/n8n/docker-compose.yml)\n    - [**nginx_proxy_manager**](./Docker/Both/nginx_proxy_manager)\n      - [.env.example](./Docker/Both/nginx_proxy_manager/.env.example)\n      - [docker-compose.yml](./Docker/Both/nginx_proxy_manager/docker-compose.yml)\n    - [**node-red**](./Docker/Both/node-red)\n      - [.env.example](./Docker/Both/node-red/.env.example)\n      - [docker-compose.yml](./Docker/Both/node-red/docker-compose.yml)\n    - [**ntp**](./Docker/Both/ntp)\n      - [.env.example](./Docker/Both/ntp/.env.example)\n      - [docker-compose.yml](./Docker/Both/ntp/docker-compose.yml)\n    - [**nut-webgui**](./Docker/Both/nut-webgui)\n      - [.env.example](./Docker/Both/nut-webgui/.env.example)\n      - [docker-compose.yml](./Docker/Both/nut-webgui/docker-compose.yml)\n    - [**ollama**](./Docker/Both/ollama)\n      - [docker-compose.yml](./Docker/Both/ollama/docker-compose.yml)\n    - [**organizrv2**](./Docker/Both/organizrv2)\n      - [.env.example](./Docker/Both/organizrv2/.env.example)\n      - [docker-compose.yml](./Docker/Both/organizrv2/docker-compose.yml)\n    - [**paperless-ngx**](./Docker/Both/paperless-ngx)\n      - [.env.example](./Docker/Both/paperless-ngx/.env.example)\n      - [docker-compose.yml](./Docker/Both/paperless-ngx/docker-compose.yml)\n    - [**passwdpusher**](./Docker/Both/passwdpusher)\n    - [**passwordpusher**](./Docker/Both/passwordpusher)\n      - [.env.example](./Docker/Both/passwordpusher/.env.example)\n      - [docker-compose.yml](./Docker/Both/passwordpusher/docker-compose.yml)\n    - [**photoprism**](./Docker/Both/photoprism)\n      - [.env.example](./Docker/Both/photoprism/.env.example)\n      - [docker-compose.yml](./Docker/Both/photoprism/docker-compose.yml)\n      - [**photoprism-1**](./Docker/Both/photoprism/photoprism-1)\n      - [**photoprism-2**](./Docker/Both/photoprism/photoprism-2)\n      - [**photoprism-3**](./Docker/Both/photoprism/photoprism-3)\n    - [**portainer**](./Docker/Both/portainer)\n      - [docker-compose.yml](./Docker/Both/portainer/docker-compose.yml)\n    - [**postgresql**](./Docker/Both/postgresql)\n      - [.env.example](./Docker/Both/postgresql/.env.example)\n      - [docker-compose.yml](./Docker/Both/postgresql/docker-compose.yml)\n    - [**proxy.py**](./Docker/Both/proxy.py)\n      - [.env.example](./Docker/Both/proxy.py/.env.example)\n      - [docker-compose.yml](./Docker/Both/proxy.py/docker-compose.yml)\n    - [**pterodactyl**](./Docker/Both/pterodactyl)\n      - [**pterodactyl-panel**](./Docker/Both/pterodactyl/pterodactyl-panel)\n        - [.env.example](./Docker/Both/pterodactyl/pterodactyl-panel/.env.example)\n        - [docker-compose.yml](./Docker/Both/pterodactyl/pterodactyl-panel/docker-compose.yml)\n      - [**pterodactyl-wings**](./Docker/Both/pterodactyl/pterodactyl-wings)\n        - [.env.example](./Docker/Both/pterodactyl/pterodactyl-wings/.env.example)\n        - [docker-compose.yml](./Docker/Both/pterodactyl/pterodactyl-wings/docker-compose.yml)\n    - [**putty**](./Docker/Both/putty)\n      - [.env.example](./Docker/Both/putty/.env.example)\n      - [docker-compose.yml](./Docker/Both/putty/docker-compose.yml)\n    - [**redis**](./Docker/Both/redis)\n      - [docker-compose.yml](./Docker/Both/redis/docker-compose.yml)\n    - [**searxng**](./Docker/Both/searxng)\n      - [.env.example](./Docker/Both/searxng/.env.example)\n      - [docker-compose.yml](./Docker/Both/searxng/docker-compose.yml)\n    - [**solr**](./Docker/Both/solr)\n      - [docker-compose.yml](./Docker/Both/solr/docker-compose.yml)\n    - [**speedtest**](./Docker/Both/speedtest)\n      - [.env.example](./Docker/Both/speedtest/.env.example)\n      - [docker-compose.yml](./Docker/Both/speedtest/docker-compose.yml)\n    - [**squid**](./Docker/Both/squid)\n      - [.env.example](./Docker/Both/squid/.env.example)\n      - [docker-compose.yml](./Docker/Both/squid/docker-compose.yml)\n    - [**syncthing**](./Docker/Both/syncthing)\n      - [.env.example](./Docker/Both/syncthing/.env.example)\n      - [docker-compose.yml](./Docker/Both/syncthing/docker-compose.yml)\n    - [**tailscale**](./Docker/Both/tailscale)\n      - [.env.example](./Docker/Both/tailscale/.env.example)\n      - [docker-compose.yml](./Docker/Both/tailscale/docker-compose.yml)\n    - [**tdarr**](./Docker/Both/tdarr)\n      - [.env.example](./Docker/Both/tdarr/.env.example)\n      - [docker-compose.yml](./Docker/Both/tdarr/docker-compose.yml)\n    - [**traefik**](./Docker/Both/traefik)\n      - [.env.example](./Docker/Both/traefik/.env.example)\n      - [**config**](./Docker/Both/traefik/config)\n        - [acme.json](./Docker/Both/traefik/config/acme.json)\n        - [fileConfig.yml](./Docker/Both/traefik/config/fileConfig.yml)\n        - [traefik.yml](./Docker/Both/traefik/config/traefik.yml)\n      - [docker-compose.yml](./Docker/Both/traefik/docker-compose.yml)\n    - [**tubearchivist**](./Docker/Both/tubearchivist)\n      - [.env.example](./Docker/Both/tubearchivist/.env.example)\n      - [docker-compose.yml](./Docker/Both/tubearchivist/docker-compose.yml)\n    - [**ubuntu-desktop**](./Docker/Both/ubuntu-desktop)\n      - [.env.example](./Docker/Both/ubuntu-desktop/.env.example)\n      - [docker-compose.yml](./Docker/Both/ubuntu-desktop/docker-compose.yml)\n    - [**uptimekuma**](./Docker/Both/uptimekuma)\n      - [docker-compose.yml](./Docker/Both/uptimekuma/docker-compose.yml)\n    - [**vault**](./Docker/Both/vault)\n      - [.env.example](./Docker/Both/vault/.env.example)\n      - [**config**](./Docker/Both/vault/config)\n        - [config.hcl](./Docker/Both/vault/config/config.hcl)\n        - [vault.json](./Docker/Both/vault/config/vault.json)\n      - [docker-compose.yml](./Docker/Both/vault/docker-compose.yml)\n    - [**vwarden**](./Docker/Both/vwarden)\n      - [.env.example](./Docker/Both/vwarden/.env.example)\n      - [docker-compose.yml](./Docker/Both/vwarden/docker-compose.yml)\n    - [**watchtower**](./Docker/Both/watchtower)\n      - [.env.example](./Docker/Both/watchtower/.env.example)\n      - [docker-compose.yml](./Docker/Both/watchtower/docker-compose.yml)\n    - [**webtop**](./Docker/Both/webtop)\n      - [.env.example](./Docker/Both/webtop/.env.example)\n      - [docker-compose.yml](./Docker/Both/webtop/docker-compose.yml)\n    - [**wgeasy**](./Docker/Both/wgeasy)\n      - [.env.example](./Docker/Both/wgeasy/.env.example)\n      - [docker-compose.yml](./Docker/Both/wgeasy/docker-compose.yml)\n    - [**wikijs**](./Docker/Both/wikijs)\n      - [.env.example](./Docker/Both/wikijs/.env.example)\n      - [docker-compose.yml](./Docker/Both/wikijs/docker-compose.yml)\n    - [**windows**](./Docker/Both/windows)\n      - [.env.example](./Docker/Both/windows/.env.example)\n      - [docker-compose.yml](./Docker/Both/windows/docker-compose.yml)\n    - [**wireguard**](./Docker/Both/wireguard)\n      - [.env.example](./Docker/Both/wireguard/.env.example)\n      - [docker-compose.yml](./Docker/Both/wireguard/docker-compose.yml)\n- [**Docs**](./Docs)\n  - [FreeForeverOracle.md](./Docs/FreeForeverOracle.md)\n  - [**content**](./Docs/content)\n    - [**assets**](./Docs/content/assets)\n      - [**img**](./Docs/content/assets/img)\n        - [wolflith-cover-rl.png](./Docs/content/assets/img/wolflith-cover-rl.png)\n    - [wolflith-cover.psd](./Docs/content/wolflith-cover.psd)\n- [LICENSE](./LICENSE)\n- [Makefile](./Makefile)\n- [**PCSMenu**](./PCSMenu)\n  - [Cargo.toml](./PCSMenu/Cargo.toml)\n  - [PCSInstall.sh](./PCSMenu/PCSInstall.sh)\n  - [PCSUpdate.sh](./PCSMenu/PCSUpdate.sh)\n  - [**src**](./PCSMenu/src)\n    - [Color.sh](./PCSMenu/src/Color.sh)\n    - [**Functions**](./PCSMenu/src/Functions)\n      - [**Ansible**](./PCSMenu/src/Functions/Ansible)\n        - [**Setup Linux Machine**](./PCSMenu/src/Functions/Ansible/Setup%20Linux%20Machine)\n          - [setupLinuxMachine.sh](./PCSMenu/src/Functions/Ansible/Setup%20Linux%20Machine/setupLinuxMachine.sh)\n        - [**Update Hosts**](./PCSMenu/src/Functions/Ansible/Update%20Hosts)\n          - [updateHosts.sh](./PCSMenu/src/Functions/Ansible/Update%20Hosts/updateHosts.sh)\n      - [**Docker**](./PCSMenu/src/Functions/Docker)\n        - [**Docker Install**](./PCSMenu/src/Functions/Docker/Docker%20Install)\n          - [dockerInstall.sh](./PCSMenu/src/Functions/Docker/Docker%20Install/dockerInstall.sh)\n        - [**Docker Update**](./PCSMenu/src/Functions/Docker/Docker%20Update)\n          - [dockerUpdate.sh](./PCSMenu/src/Functions/Docker/Docker%20Update/dockerUpdate.sh)\n        - [**Provision Docker Service**](./PCSMenu/src/Functions/Docker/Provision%20Docker%20Service)\n          - [provisionDockerService.sh](./PCSMenu/src/Functions/Docker/Provision%20Docker%20Service/provisionDockerService.sh)\n        - [**Scripts**](./PCSMenu/src/Functions/Docker/Scripts)\n          - [provisionDockerService.sh](./PCSMenu/src/Functions/Docker/Scripts/provisionDockerService.sh)\n          - [selectService.sh](./PCSMenu/src/Functions/Docker/Scripts/selectService.sh)\n          - [updateDockerComposeEnv.sh](./PCSMenu/src/Functions/Docker/Scripts/updateDockerComposeEnv.sh)\n      - [**Proxmox**](./PCSMenu/src/Functions/Proxmox)\n        - [**Provision LXC with Docker Service**](./PCSMenu/src/Functions/Proxmox/Provision%20LXC%20with%20Docker%20Service)\n          - [provisionLxcDockerService.sh](./PCSMenu/src/Functions/Proxmox/Provision%20LXC%20with%20Docker%20Service/provisionLxcDockerService.sh)\n        - [**Scripts**](./PCSMenu/src/Functions/Proxmox/Scripts)\n          - [checkProxmox.sh](./PCSMenu/src/Functions/Proxmox/Scripts/checkProxmox.sh)\n          - [provisionLxc.sh](./PCSMenu/src/Functions/Proxmox/Scripts/provisionLxc.sh)\n          - [proxmoxLxcCifsShare.sh](./PCSMenu/src/Functions/Proxmox/Scripts/proxmoxLxcCifsShare.sh)\n      - [**Scripts**](./PCSMenu/src/Functions/Scripts)\n        - [checkLinux.sh](./PCSMenu/src/Functions/Scripts/checkLinux.sh)\n      - [**Tools**](./PCSMenu/src/Functions/Tools)\n        - [**Run Script-Return Output**](./PCSMenu/src/Functions/Tools/Run%20Script-Return%20Output)\n          - [executeCommand.sh](./PCSMenu/src/Functions/Tools/Run%20Script-Return%20Output/executeCommand.sh)\n    - [PCSFunc.sh](./PCSMenu/src/PCSFunc.sh)\n    - [main.rs](./PCSMenu/src/main.rs)\n    - [menu.rs](./PCSMenu/src/menu.rs)\n    - [utils.rs](./PCSMenu/src/utils.rs)\n- [README.md](./README.md)\n- [**Scripts**](./Scripts)\n  - [**Vault**](./Scripts/Vault)\n    - [auto-all-env.sh](./Scripts/Vault/auto-all-env.sh)\n    - [go.mod](./Scripts/Vault/go.mod)\n    - [go.sum](./Scripts/Vault/go.sum)\n    - [main.go](./Scripts/Vault/main.go)\n    - [**vaultCommon**](./Scripts/Vault/vaultCommon)\n      - [vault_common.go](./Scripts/Vault/vaultCommon/vault_common.go)\n    - [**vaultPull**](./Scripts/Vault/vaultPull)\n      - [vault_pull_module.go](./Scripts/Vault/vaultPull/vault_pull_module.go)\n    - [**vaultPush**](./Scripts/Vault/vaultPush)\n      - [vault_push_module.go](./Scripts/Vault/vaultPush/vault_push_module.go)\n- [bun.lockb](./bun.lockb)\n- [commitlint.config.cjs](./commitlint.config.cjs)\n- [package.json](./package.json)\n- [renovate.json](./renovate.json)\n- [repoTree.py](./repoTree.py)\n\n\u003c!-- tree generated by repoTree.py ends here --\u003e\n\u003c/details\u003e\n\n## Star history\n\n\u003ca href=\"https://star-history.com/#NorkzYT/Wolflith\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=NorkzYT/Wolflith\u0026type=Date\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=NorkzYT/Wolflith\u0026type=Date\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=NorkzYT/Wolflith\u0026type=Date\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorkzyt%2Fwolflith","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorkzyt%2Fwolflith","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorkzyt%2Fwolflith/lists"}