Compare commits
24 commits
cfbf1f8826
...
1bcd8e46cb
Author | SHA1 | Date | |
---|---|---|---|
1bcd8e46cb | |||
e40f0c7105 | |||
1845c4e4c2 | |||
dbb366a2c0 | |||
bf2fd513ed | |||
6dad3ae3a5 | |||
ece44bc8a4 | |||
e07d5cd3b9 | |||
4ee729ceae | |||
91acae49f6 | |||
9e47851f3b | |||
1a7b53d6f9 | |||
c583b81865 | |||
6620a53ac6 | |||
45d9404f22 | |||
b2c6782e41 | |||
f311309e05 | |||
41c76486f6 | |||
694ace85ad | |||
181cfe20fb | |||
e540c5d195 | |||
3d4c493a08 | |||
b0c601f4e7 | |||
107e6e3bd5 |
10 changed files with 334 additions and 21 deletions
115
ansible/playbooks/zsh.yml
Normal file
115
ansible/playbooks/zsh.yml
Normal file
|
@ -0,0 +1,115 @@
|
|||
---
|
||||
- name: Configure Zsh, Neofetch, FZF, and custom .zshrc
|
||||
hosts: all
|
||||
become: true
|
||||
vars:
|
||||
zsh_custom: "{{ ansible_env.HOME }}/.oh-my-zsh/custom"
|
||||
user: "{{ ansible_user }}"
|
||||
|
||||
tasks:
|
||||
- name: Install necessary packages
|
||||
apt:
|
||||
name:
|
||||
- zsh
|
||||
- neofetch
|
||||
- fzf
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Pre-create basic .zshrc
|
||||
copy:
|
||||
dest: "/home/{{ user }}/.zshrc"
|
||||
content: |
|
||||
# Path to your Oh My Zsh installation.
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
export PATH=$PATH:$HOME/.local/bin
|
||||
|
||||
# Set theme
|
||||
ZSH_THEME="robbyrussell"
|
||||
|
||||
# Plugins
|
||||
plugins=(git ubuntu copypath copyfile dirhistory zsh-interactive-cd docker docker-compose opentofu zsh-history-substring-search zsh-autosuggestions zsh-syntax-highlighting you-should-use)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# Set up Oh My Posh
|
||||
eval "$(oh-my-posh init zsh --config https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/sonicboom_dark.omp.json)"
|
||||
|
||||
# Custom aliases
|
||||
alias dcd="docker compose down"
|
||||
alias dcu="docker compose up -d"
|
||||
|
||||
# Display system information
|
||||
neofetch
|
||||
owner: "{{ user }}"
|
||||
mode: '0644'
|
||||
|
||||
- name: Download Oh My Zsh installation script
|
||||
get_url:
|
||||
url: https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
|
||||
dest: /tmp/install_ohmyzsh.sh
|
||||
|
||||
- name: Run Oh My Zsh installation script
|
||||
command: sh /tmp/install_ohmyzsh.sh --unattended
|
||||
register: ohmyzsh_result
|
||||
failed_when: "'FAILED' in ohmyzsh_result.stderr"
|
||||
args:
|
||||
chdir: "/home/{{ user }}"
|
||||
environment:
|
||||
HOME: "/home/{{ user }}"
|
||||
RUNZSH: "no"
|
||||
|
||||
- name: Ensure custom plugins directory exists
|
||||
file:
|
||||
path: "{{ zsh_custom }}/plugins"
|
||||
state: directory
|
||||
owner: "{{ user }}"
|
||||
group: "{{ user }}"
|
||||
|
||||
- name: Clone zsh-syntax-highlighting plugin
|
||||
git:
|
||||
repo: https://github.com/zsh-users/zsh-syntax-highlighting.git
|
||||
dest: "/home/{{ ansible_user }}/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting"
|
||||
update: yes
|
||||
|
||||
- name: Clone zsh-autosuggestions plugin
|
||||
git:
|
||||
repo: https://github.com/zsh-users/zsh-autosuggestions.git
|
||||
dest: "/home/{{ ansible_user }}/.oh-my-zsh/custom/plugins/zsh-autosuggestions"
|
||||
update: yes
|
||||
|
||||
- name: Clone zsh-history-substring-search plugin
|
||||
git:
|
||||
repo: https://github.com/zsh-users/zsh-history-substring-search.git
|
||||
dest: "/home/{{ ansible_user }}/.oh-my-zsh/custom/plugins/zsh-history-substring-search"
|
||||
update: yes
|
||||
|
||||
- name: Clone you-should-use plugin
|
||||
git:
|
||||
repo: https://github.com/MichaelAquilina/zsh-you-should-use.git
|
||||
dest: "/home/{{ ansible_user }}/.oh-my-zsh/custom/plugins/you-should-use"
|
||||
update: yes
|
||||
|
||||
- name: Ensure .local/bin directory exists
|
||||
file:
|
||||
path: "/home/{{ user }}/.local/bin"
|
||||
state: directory
|
||||
owner: "{{ user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Download Oh My Posh binary
|
||||
get_url:
|
||||
url: https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64
|
||||
dest: "/home/{{ user }}/.local/bin/oh-my-posh"
|
||||
mode: '0755'
|
||||
|
||||
- name: Ensure ownership of .local/bin/oh-my-posh
|
||||
file:
|
||||
path: "/home/{{ user }}/.local/bin/oh-my-posh"
|
||||
owner: "{{ user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Change default shell to Zsh (after setting up .zshrc)
|
||||
user:
|
||||
name: "{{ user }}"
|
||||
shell: /bin/zsh
|
|
@ -1,10 +1,10 @@
|
|||
version: "3.8"
|
||||
|
||||
services:
|
||||
ollama:
|
||||
image: ollama/ollama:0.3.11
|
||||
container_name: ollama
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- ai-stack
|
||||
volumes:
|
||||
- ollama:/root/.ollama
|
||||
ports:
|
||||
|
@ -18,9 +18,31 @@ services:
|
|||
capabilities: [gpu]
|
||||
|
||||
open-webui:
|
||||
image: ghcr.io/open-webui/open-webui:v0.3.22
|
||||
image: ghcr.io/open-webui/open-webui:v0.3.23
|
||||
container_name: open-webui
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- ai-stack
|
||||
environment:
|
||||
- ENABLE_RAG_WEB_SEARCH=True
|
||||
- RAG_WEB_SEARCH_ENGINE=searxng
|
||||
- RAG_WEB_SEARCH_RESULT_COUNT=3
|
||||
- RAG_WEB_SEARCH_CONCURRENT_REQUESTS=10
|
||||
- SEARXNG_QUERY_URL=http://searxng:8080/search?q=<query>
|
||||
- OAUTH_CLIENT_ID=${OAUTH_CLIENT_ID}
|
||||
- OAUTH_CLIENT_SECRET=${OAUTH_CLIENT_SECRET}
|
||||
- OPENID_PROVIDER_URL=${OPENID_PROVIDER_URL}
|
||||
- OAUTH_PROVIDER_NAME=${OAUTH_PROVIDER_NAME}
|
||||
- OAUTH_USERNAME_CLAIM=name
|
||||
- OAUTH_EMAIL_CLAIM=email
|
||||
- OAUTH_SCOPES=${OAUTH_SCOPES}
|
||||
- OAUTH_MERGE_ACCOUNTS_BY_EMAIL=True
|
||||
- ENABLE_OAUTH_SIGNUP=True
|
||||
- ENABLE_SIGNUP=True
|
||||
- WEBUI_AUTH=False
|
||||
- ENABLE_LOGIN_FORM=True
|
||||
- ENABLE_IMAGE_GENERATION=True
|
||||
- COMFYUI_BASE_URL=http://stable-diffusion-webui:7860
|
||||
ports:
|
||||
- 3000:8080
|
||||
volumes:
|
||||
|
@ -28,8 +50,156 @@ services:
|
|||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
searxng:
|
||||
image: searxng/searxng@sha256:efc99f666dd360bb5f606b401cff5baad6cdbb3095fd061b3eb34e0c1a12e54a
|
||||
container_name: searxng
|
||||
networks:
|
||||
- ai-stack
|
||||
environment:
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /docker/appdata/searxng:/etc/searxng
|
||||
depends_on:
|
||||
- ollama
|
||||
- open-webui
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8081:8080"
|
||||
|
||||
stable-diffusion-download:
|
||||
build: /docker/appdata/stable-diffusion-webui-docker/services/download/
|
||||
image: comfy-download
|
||||
environment:
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /docker/appdata/stable-diffusion-webui-docker/data:/data
|
||||
|
||||
stable-diffusion-webui:
|
||||
build: /docker/appdata/stable-diffusion-webui-docker/services/comfy/
|
||||
image: comfy-ui
|
||||
environment:
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
- CLI_ARGS=
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /docker/appdata/stable-diffusion-webui-docker/data:/data
|
||||
- /docker/appdata/stable-diffusion-webui-docker/output:/output
|
||||
stop_signal: SIGKILL
|
||||
tty: true
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
device_ids: ['0']
|
||||
capabilities: [compute, utility]
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- ai-stack
|
||||
ports:
|
||||
- "7860:7860"
|
||||
|
||||
mongo:
|
||||
image: mongo
|
||||
env_file:
|
||||
- .env
|
||||
networks:
|
||||
- ai-stack
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /docker/appdata/whisper/db_data:/data/db
|
||||
- /docker/appdata/whisper/db_data/logs/:/var/log/mongodb/
|
||||
environment:
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
- MONGO_INITDB_ROOT_USERNAME=${DB_USER:-whisper}
|
||||
- MONGO_INITDB_ROOT_PASSWORD=${DB_PASS:-whisper}
|
||||
command: ['--logpath', '/var/log/mongodb/mongod.log']
|
||||
ports:
|
||||
- "27017:27017"
|
||||
|
||||
translate:
|
||||
container_name: whisper-libretranslate
|
||||
image: libretranslate/libretranslate:v1.6.0-cuda
|
||||
env_file:
|
||||
- .env
|
||||
networks:
|
||||
- ai-stack
|
||||
restart: "no"
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /docker/appdata/whisper/libretranslate/data:/home/libretranslate/.local/share
|
||||
- /docker/appdata/whisper/libretranslate/cache:/home/libretranslate/.local/cache
|
||||
user: root
|
||||
tty: true
|
||||
environment:
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
- LT_DISABLE_WEB_UI=True
|
||||
- LT_LOAD_ONLY=${LT_LOAD_ONLY:-en,fr,es}
|
||||
- LT_UPDATE_MODELS=True
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities: [gpu]
|
||||
ports:
|
||||
- "5000:5000"
|
||||
|
||||
whisper:
|
||||
container_name: whisper
|
||||
pull_policy: always
|
||||
image: pluja/whishper:v3.1.4-gpu
|
||||
env_file:
|
||||
- .env
|
||||
networks:
|
||||
- ai-stack
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /docker/appdata/whisper/uploads:/app/uploads
|
||||
- /docker/appdata/whisper/logs:/var/log/whishper
|
||||
- /docker/appdata/whisper/models:/app/models
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mongo
|
||||
environment:
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
- PUBLIC_INTERNAL_API_HOST=http://127.0.0.1:80
|
||||
- PUBLIC_API_HOST=${WHISHPER_HOST:-}
|
||||
- PUBLIC_WHISHPER_PROFILE=gpu
|
||||
- WHISPER_MODELS_DIR=/app/models
|
||||
- UPLOAD_DIR=/app/uploads
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities: [gpu]
|
||||
ports:
|
||||
- "8090:80"
|
||||
|
||||
networks:
|
||||
ai-stack:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
ollama:
|
||||
external: true
|
||||
open-webui:
|
||||
external: true
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ services:
|
|||
networks:
|
||||
- gitea_main
|
||||
n8n:
|
||||
image: ghcr.io/n8n-io/n8n:1.60.0
|
||||
image: ghcr.io/n8n-io/n8n:1.60.1
|
||||
container_name: n8n
|
||||
ports:
|
||||
- 5678:5678
|
||||
|
|
|
@ -43,7 +43,7 @@ services:
|
|||
- PGID=1000
|
||||
|
||||
radarr:
|
||||
image: ghcr.io/linuxserver/radarr@sha256:dfbce5095045fc1c15058318342ee590ab50379854b13464dd2ca17b10c4beb4
|
||||
image: ghcr.io/linuxserver/radarr@sha256:df843d96b812d858b94377ffed1918424ece6735038a19e8ff93730277757b65
|
||||
container_name: radarr
|
||||
ports:
|
||||
- "7878:7878"
|
||||
|
@ -105,7 +105,7 @@ services:
|
|||
|
||||
|
||||
doplarr:
|
||||
image: ghcr.io/linuxserver/doplarr@sha256:e7a1a285b873622a3d2491612cad93ef2e015401495be96778304b15816547f5
|
||||
image: ghcr.io/linuxserver/doplarr@sha256:553ab1a599797924b7c6aec47becd05a3bbc455197349cac190eec1f2707ade2
|
||||
container_name: doplarr
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
services:
|
||||
netbootxyz:
|
||||
image: ghcr.io/linuxserver/netbootxyz@sha256:16fdc41c85cd9fd3057868e539b9300aaf95f9fc29be1b13bf78334802e0b10f
|
||||
image: ghcr.io/linuxserver/netbootxyz@sha256:ca89a75a79371b041da7c7b9ff75320831212c1e9dcb7957b2f82914f54d9ce9
|
||||
container_name: netboot
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
|
@ -27,7 +27,7 @@ services:
|
|||
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
||||
|
||||
gotenberg:
|
||||
image: docker.io/gotenberg/gotenberg:8.7
|
||||
image: docker.io/gotenberg/gotenberg:8.10
|
||||
restart: unless-stopped
|
||||
|
||||
# The gotenberg chromium route is used to convert .eml files. We do not
|
||||
|
|
|
@ -12,7 +12,7 @@ services:
|
|||
restart: always
|
||||
|
||||
vikunja:
|
||||
image: vikunja/vikunja@sha256:c31c7d6cad49038ab8a7d1414845d4c45539b43dd6ddd082bcd148e6fcd7b01c
|
||||
image: vikunja/vikunja@sha256:c400bdcb2ae4a78fccb9b463d01f96d1b2cfaef3484a4dd5c2a26e55eadc2d7a
|
||||
environment:
|
||||
VIKUNJA_SERVICE_PUBLICURL: $VIKUNJA_SERVICE_PUBLICURL
|
||||
VIKUNJA_DATABASE_TYPE: sqlite
|
||||
|
|
21
packer/ubuntu-jammy/files/.zshrc
Normal file
21
packer/ubuntu-jammy/files/.zshrc
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Path to your Oh My Zsh installation.
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
export PATH=$PATH:$HOME/.local/bin
|
||||
|
||||
# Set theme
|
||||
ZSH_THEME="robbyrussell"
|
||||
|
||||
# Plugins
|
||||
plugins=(git ubuntu copypath copyfile dirhistory zsh-interactive-cd docker docker-compose opentofu zsh-history-substring-search zsh-autosuggestions zsh-syntax-highlighting you-should-use)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# Set up Oh My Posh
|
||||
eval "$(oh-my-posh init zsh --config https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/sonicboom_dark.omp.json)"
|
||||
|
||||
# Custom aliases
|
||||
alias dcd="docker compose down"
|
||||
alias dcu="docker compose up -d"
|
||||
|
||||
# Display system information
|
||||
neofetch
|
|
@ -94,27 +94,38 @@ build {
|
|||
]
|
||||
}
|
||||
|
||||
|
||||
provisioner "file" {
|
||||
source = "files/pve.cfg"
|
||||
destination = "/tmp/pve.cfg"
|
||||
}
|
||||
|
||||
|
||||
provisioner "shell" {
|
||||
inline = [ "sudo cp /tmp/pve.cfg /etc/cloud/cloud.cfg.d/pve.cfg" ]
|
||||
}
|
||||
|
||||
# Install Commonly Used Things - add alias's - set git config
|
||||
# Install commonly used things - add alias's - set git config
|
||||
provisioner "shell" {
|
||||
inline = [
|
||||
"sudo apt-get install -y ca-certificates curl gnupg lsb-release nfs-common qemu-guest-agent net-tools",
|
||||
"sudo apt-get install -y ca-certificates curl gnupg lsb-release nfs-common qemu-guest-agent net-tools zsh neofetch fzf",
|
||||
"sudo chsh -s $(which zsh) mafyuh",
|
||||
"curl -fsSL https://get.docker.com | sudo sh",
|
||||
"echo \"alias dcu='docker compose up -d'\" >> ~/.bashrc",
|
||||
"echo \"alias dcd='docker compose down'\" >> ~/.bashrc",
|
||||
"sh -c \"$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\" --unattended",
|
||||
"git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting",
|
||||
"git clone https://github.com/zsh-users/zsh-autosuggestions.git $${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions",
|
||||
"git clone https://github.com/zsh-users/zsh-history-substring-search.git $${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-history-substring-search",
|
||||
"git clone https://github.com/MichaelAquilina/zsh-you-should-use.git $${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/you-should-use",
|
||||
"mkdir -p /home/mafyuh/.local/bin",
|
||||
"curl -fsSL https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -o /home/mafyuh/.local/bin/oh-my-posh",
|
||||
"sudo chmod +x /home/mafyuh/.local/bin/oh-my-posh",
|
||||
"git config --global user.name \"Mafyuh\"",
|
||||
"git config --global user.email \"matt@mafyuh.com\"",
|
||||
"sudo apt-get -y update"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
source = "files/.zshrc"
|
||||
destination = "~/.zshrc"
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -64,8 +64,4 @@ resource "proxmox_virtual_environment_vm" "Ubu" {
|
|||
]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
output "vm_ipv4_address" {
|
||||
value = proxmox_virtual_environment_vm.Ubu.ipv4_addresses[1][0]
|
||||
}
|
Loading…
Reference in a new issue