Added bootstrap role with the tasks, defaults and handlers necessary for the playbooks

This commit is contained in:
Alex Tavarez
2025-07-16 21:02:44 -04:00
parent b22c88e1ca
commit 85b1f6cd25
41 changed files with 2349 additions and 0 deletions

View File

@@ -0,0 +1,216 @@
---
#@TODO: packages needed: mail server, URL shortener, music player daemon
server_pkgs:
#@NOTE version control
- package: git-all
version: ~
#@NOTE reverse proxy
- package: caddy
version: ~
#@NOTE database management service
- package: sqlite3
version: ~
#@NOTE database management service
- package: postgresql
version: ~
#@NOTE onion router, relay or server
- package: tor
version: ~
#@NOTE FTP service
- package: proftpd-core
version: ~
#@NOTE antivirus module for extending FTP service
- package: proftpd-mod-clamav
version: ~
#@NOTE cryptographic module for extending FTP service
- package: proftpd-mod-crypto
version: ~
#@NOTE IRC chat service
- package: inspircd
version: ~
#@NOTE IRC extended services
- package: anope
version: ~
- package: gnunet
version: ~
#@NOTE CLI download manager service
- package: aria2
version: ~
#@NOTE crowdsourced security stack
- package: crowdsec
version: ~
#@NOTE TURN and STUN server
- package: coturn
version: ~
server_pkgs_ext:
#@NOTE VPN tunnel
- package: tailscale
version: ~
key_orig_is_url: yes
key: https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg
key_dest: /usr/share/keyrings/tailscale-archive-keyring.gpg
repo_orig_is_url: yes
repo: https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list
repo_dest: /etc/apt/sources.list.d/tailscale.list
virtualization_pkgs:
#@NOTE container engine
- package: podman
version: ~
#@NOTE container engine configuration manager
- package: podman-compose
version: ~
#@NOTE container engine
- package: distrobox
version: ~
pkgmanager_pkgs:
- package: snapd
version: ~
- package: flatpak
version: ~
cli_pkgs:
#@NOTE terminal
- package: kitty
version: ~
#@NOTE vi/vim-based text editor
- package: neovim
version: ~
#@NOTE antivirus client
- package: clamav
version: ~
#@NOTE intrusion prevention software framework
- package: fail2ban
version: ~
#@NOTE SSL certificate tool
- package: certbot
version: ~
#@NOTE Overlay file encryption tool
- package: gocryptfs
version: ~
#@NOTE these should be available on the system by default
# #@NOTE encryption, authentication and signature key manager
# - package: gnupg
# version: ~
# - package: gnupg-agent
# version: ~
# - package: gnupg-l10n
# version: ~
# - package: gnupg-utils
# version: ~
# #@NOTE userspace filesystem utility
# - package: fuse3
# version: ~
cli_pkgs_ext:
#@NOTE markdown rendering or syntax highlighting
- package: glow
version: ~
key_orig_is_url: yes
key: https://repo.charm.sh/apt/gpg.key
key_dest: /etc/apt/keyrings/charm.gpg
repo_orig_is_url: no
repo: repos.Debian/charm.list
repo_dest: /etc/apt/sources.list.d/charm.list
transcoding_pkgs:
#@NOTE media-handling suite
- package: ffmpeg
version: ~
#@NOTE VP9 video codec
- package: libvpx9
version: ~
media_pkgs:
#@NOTE media playtime synchronization server
- package: syncplay-server
version: ~
coding_pkgs:
#@NOTE NodeJS Javascript runtime environment
- package: nodejs
version: ~
#@NOTE NodeJS documentation
- package: nodejs-doc
version: ~
#@NOTE NodeJS package manager
- package: npm
version: ~
#@NOTE NodeJS Reactjs web framework
- package: node-react
version: ~
#@NOTE NodeJS expressjs web framework
- package: node-express
version: ~
#@NOTE Elixir virtualized programming language
- package: elixir
version: ~
#@NOTE Elixir/ErLand package manager
- package: erlang-hex
version: ~
#@NOTE Crystal programming language
- package: crystal
version: ~
#@NOTE Crystal documentation
- package: crystal-doc
version: ~
#@NOTE Crystal package manager
- package: shards
version: ~
#@NOTE Python programming language
- package: python3
version: ~
#@NOTE Python package manager
- package: pip
version: ~
#@NOTE Python web framework
- package: python3-flask
version: ~
#@NOTE Ruby programming language
- package: ruby-standalone
version: ~
#@NOTE Ruby package manager
- package: ruby-rubygems
version: ~
#@NOTE Ruby web framework
- package: ruby-rails
version: ~
#@NOTE Rust programming language
- package: rustc
version: ~
#@NOTE Rust documentation
- package: rust-doc
version: ~
#@NOTE Rust package manager
- package: cargo
version: ~
#@NOTE Rust package manager documentation
- package: cargo-doc
version: ~
#@NOTE Rust toolchain
- package: rustup
version: ~
#@NOTE Lua programming language
- package: lua5.1
version: ~
#@NOTE Lua documentation
- package: lua5.1-doc
version: ~
#@NOTE Lua package manager
- package: luarocks
version: ~
#@NOTE LLVM to Javascript compiler (needed for WASMoon module)
- package: emscripten
version: ~
#@NOTE LLVM to Javascript compiler (needed for WASMoon module)
- package: emscripten-doc
version: ~
#@NOTE R programming language
- package: r-base
version: ~
#@NOTE R programming language
- package: r-base
version: ~
#@NOTE PHP programming language
- package: php
version: ~
#@NOTE PHP interpreter server
- package: php-fpm
version: ~
#@NOTE PHP dependency manager
- package: composer
version: ~

View File

@@ -0,0 +1,4 @@
---
#@NOTE list your packages consistent with format of 'core_pkgs@Debian.yml'
#@NOTE no other keys/variables at top-level allowed than 'my_pkgs'
my_pkgs: ~

View File

@@ -0,0 +1,52 @@
---
#@TODO: additional self-hosted services to consider for images:
#@NOTE https://awesome-selfhosted.net
core_cimages:
#@NOTE bash ssh service
#@NOTE https://hub.docker.com/r/linuxserver/openssh-server
- uri: docker.io/linuxserver/openssh-server
tag: latest
#@NOTE the below should only be used if not using caddy on host for webdev
# #@NOTE Apache web service with PHP
# #@NOTE https://hub.docker.com/_/php
# #@NOTE https://hub.docker.com/_/httpd
# - uri: docker.io/php
# tag: apache
#@NOTE cloud service
#@NOTE https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/
#@NOTE https://github.com/nextcloud/all-in-one/blob/main/compose.yaml
- uri: docker.io/nextcloud/aio-postgresql
tag: latest
#@NOTE OpenPGP public keyservice
#@NOTE https://hockeypuck.io/install-docker.html
- uri: docker.io/hockeypuck/hockeypuck
tag: 2.0.14
recc_cimages:
#@NOTE livestreaming web service
#@NOTE https://owncast.online/quickstart/container/
- uri: docker.io/owncast/owncast
tag: latest
#@NOTE XMPP chat service
#@NOTE https://prosody.im/doc/docker
- uri: docker.io/prosody/prosody
tag: latest
#@NOTE matrix chat service
#@NOTE https://element-hq.github.io/synapse/latest/setup/installation.html#docker-images-and-ansible-playbooks
- uri: docker.io/matrixdotorg/synapse
tag: latest
#@NOTE budgeting web service
#@NOTE https://actualbudget.org/docs/install/docker
- url: docker.io/actualbudget/actual-server
tag: latest-alpine
#@NOTE grocery and household management web service
#@NOTE https://hub.docker.com/r/linuxserver/grocy
- url: docker.io/linuxserver/grocy
tag: latest
#@NOTE workout management web service
#@NOTE https://wger.readthedocs.io/en/latest/production/docker.html
- url: docker.io/wger/server
tag: latest
#@NOTE recipe management web service
#@NOTE https://docs.mealie.io/documentation/getting-started/installation/installation-checklist/
- url: docker.io/hkotel/mealie
tag: latest

View File

@@ -0,0 +1,4 @@
---
#@NOTE list your packages consistent with format of 'core_images@podman.yml'
#@NOTE no other keys/variables at top-level allowed than 'my_cimages'
my_cimages: ~

View File

@@ -0,0 +1,14 @@
---
admins: ~
guests: ~
users: ~
roots: ~
pubkeys: ~
root_acct: ~
nonlogin_method: ~
extra_packages: ~
official_name: ~
official_email: ~
gpg_sign_id: ~
homedir: ~
cimages: ~