Cleared out some old roles and installed searxng
This commit is contained in:
@@ -17,11 +17,12 @@
|
|||||||
- ntfy
|
- ntfy
|
||||||
- nextcloud
|
- nextcloud
|
||||||
- tautulli
|
- tautulli
|
||||||
- gitea
|
#- gitea
|
||||||
- unifi-controller
|
- unifi-controller
|
||||||
- navidrome
|
- navidrome
|
||||||
- lidarr
|
- lidarr
|
||||||
- webtrees
|
|
||||||
- slskd
|
- slskd
|
||||||
- barassistant
|
- barassistant
|
||||||
- synapse
|
- synapse
|
||||||
|
- name: searxng
|
||||||
|
tags: test
|
||||||
|
@@ -1 +0,0 @@
|
|||||||
ssh -p 2222 -o StrictHostKeyChecking=no git@127.0.0.1 "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
|
|
@@ -1,53 +0,0 @@
|
|||||||
- name: Create service user
|
|
||||||
user:
|
|
||||||
name: git
|
|
||||||
password_lock: yes
|
|
||||||
generate_ssh_key: yes
|
|
||||||
ssh_key_type: rsa
|
|
||||||
ssh_key_comment: Gitea Host Key
|
|
||||||
register: service_user
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Add user git's ssh key to its own authorized_key file
|
|
||||||
ansible.posix.authorized_key:
|
|
||||||
user: git
|
|
||||||
key: "{{ service_user.ssh_public_key }}"
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Set authorized_key file permissions
|
|
||||||
file:
|
|
||||||
path: "/home/{{ service_user.name }}/.ssh/authorized_keys"
|
|
||||||
mode: 0600
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Install SSH shim script
|
|
||||||
copy:
|
|
||||||
src: ssh_shim.sh
|
|
||||||
dest: /usr/local/bin/gitea
|
|
||||||
owner: "{{ service_user.uid }}"
|
|
||||||
group: "{{ service_user.group }}"
|
|
||||||
mode: 0711
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Create install directory
|
|
||||||
file:
|
|
||||||
path: "{{ install_directory }}/{{ role_name }}"
|
|
||||||
state: directory
|
|
||||||
owner: "{{ docker_user }}"
|
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Copy docker-compose file to destination
|
|
||||||
template:
|
|
||||||
src: docker-compose.yml
|
|
||||||
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
|
||||||
owner: "{{ docker_user }}"
|
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
|
||||||
validate: docker-compose -f %s config
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Start docker container
|
|
||||||
community.docker.docker_compose:
|
|
||||||
project_src: "{{ install_directory }}/{{ role_name }}"
|
|
||||||
pull: true
|
|
||||||
remove_orphans: yes
|
|
@@ -1,55 +0,0 @@
|
|||||||
version: "{{ docker_compose_version }}"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
traefik:
|
|
||||||
external: true
|
|
||||||
default:
|
|
||||||
external: false
|
|
||||||
|
|
||||||
services:
|
|
||||||
gitea:
|
|
||||||
container_name: gitea
|
|
||||||
image: gitea/gitea:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
networks:
|
|
||||||
- traefik
|
|
||||||
- default
|
|
||||||
ports:
|
|
||||||
- "127.0.0.1:2222:22"
|
|
||||||
environment:
|
|
||||||
- "USER_UID={{ service_user.uid }}"
|
|
||||||
- "USER_GID={{ service_user.group }}"
|
|
||||||
- GITEA__database__DB_TYPE=postgres
|
|
||||||
- GITEA__database__HOST=db:5432
|
|
||||||
- GITEA__database__NAME=gitea
|
|
||||||
- GITEA__database__USER=gitea
|
|
||||||
- GITEA__database__PASSWD=gitea
|
|
||||||
- GITEA__server__START_SSH_SERVER=true
|
|
||||||
- GITEA__server__BUILTIN_SSH_SERVER_USER=git
|
|
||||||
- GITEA__server__SSH_LISTEN_PORT=2222
|
|
||||||
- "GITEA__server__DOMAIN=git.{{ personal_domain }}"
|
|
||||||
- "GITEA__server__ROOT_URL=https://git.{{ personal_domain }}"
|
|
||||||
- GITEA__server__LANDING_PAGE=explore
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/gitea:/data"
|
|
||||||
- /etc/localtime:/etc/localtime:ro
|
|
||||||
- /etc/timezone:/etc/timezone:ro
|
|
||||||
- /home/git/.ssh:/data/git/.ssh # For SSH passthrough
|
|
||||||
labels:
|
|
||||||
traefik.enable: true
|
|
||||||
traefik.http.routers.gitea.rule: "Host(`git.{{ personal_domain }}`)"
|
|
||||||
traefik.http.services.gitea.loadbalancer.server.port: 3000
|
|
||||||
|
|
||||||
db:
|
|
||||||
image: postgres:14-alpine
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
environment:
|
|
||||||
- POSTGRES_USER=gitea
|
|
||||||
- POSTGRES_PASSWORD=gitea
|
|
||||||
- POSTGRES_DB=gitea
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/postgres/gitea:/var/lib/postgresql/data"
|
|
@@ -1 +0,0 @@
|
|||||||
upload_location: "{{ data_dir }}/immich/upload"
|
|
@@ -1,86 +0,0 @@
|
|||||||
version: "{{ docker_compose_version }}"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
immich-server:
|
|
||||||
container_name: immich_server
|
|
||||||
image: ghcr.io/immich-app/immich-server:release
|
|
||||||
restart: unless-stopped
|
|
||||||
entrypoint: ["/bin/sh", "./start-server.sh"]
|
|
||||||
volumes:
|
|
||||||
- "{{ upload_location }}:/usr/src/app/upload"
|
|
||||||
depends_on:
|
|
||||||
- redis
|
|
||||||
- database
|
|
||||||
- typesense
|
|
||||||
|
|
||||||
immich-microservices:
|
|
||||||
container_name: immich_microservices
|
|
||||||
image: ghcr.io/immich-app/immich-server:release
|
|
||||||
restart: unless-stopped
|
|
||||||
entrypoint: ["/bin/sh", "./start-microservices.sh"]
|
|
||||||
volumes:
|
|
||||||
- "{{ upload_location }}:/usr/src/app/upload"
|
|
||||||
environment:
|
|
||||||
- NODE_ENV=production
|
|
||||||
depends_on:
|
|
||||||
- redis
|
|
||||||
- database
|
|
||||||
- typesense
|
|
||||||
|
|
||||||
immich-machine-learning:
|
|
||||||
container_name: immich_machine_learning
|
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:release
|
|
||||||
restart: unless-stopped
|
|
||||||
volumes:
|
|
||||||
- "{{ upload_location }}:/usr/src/app/upload"
|
|
||||||
- model-cache:/cache
|
|
||||||
environment:
|
|
||||||
- NODE_ENV=production
|
|
||||||
|
|
||||||
immich-web:
|
|
||||||
container_name: immich-web
|
|
||||||
image: ghcr.io/immich-app/immich-web:release
|
|
||||||
restart: unless-stopped
|
|
||||||
entrypoint: ["/bin/sh", "./entrypoint.sh"]
|
|
||||||
|
|
||||||
typesense:
|
|
||||||
container_name: immich_typesense
|
|
||||||
image: typesense/typesense:0.24.0
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- TYPESENSE_API_KEY={{ typesense_api_key }}
|
|
||||||
- TYPESENSE_DATA_DIR=/data
|
|
||||||
logging:
|
|
||||||
driver: none
|
|
||||||
volumes:
|
|
||||||
- tsdata:/data
|
|
||||||
|
|
||||||
redis:
|
|
||||||
container_name: immich_redis
|
|
||||||
image: redis:6.2
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
database:
|
|
||||||
container_name: immich_postgres
|
|
||||||
image: postgres:14
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
POSTGRES_PASSWORD: immich
|
|
||||||
POSTGRES_USER: immich
|
|
||||||
POSTGRES_DB: immich
|
|
||||||
PG_DATA: /var/lib/postgresql/data
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/postgres/immich:/var/lib/postgresql/data
|
|
||||||
|
|
||||||
immich-proxy:
|
|
||||||
container_name: immich_proxy
|
|
||||||
image: ghcr.io/immich-app/immich-proxy:release
|
|
||||||
environment:
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
model-cache:
|
|
||||||
tsdata:
|
|
@@ -1,29 +0,0 @@
|
|||||||
- name: Create service user
|
|
||||||
user:
|
|
||||||
name: "{{ role_name }}"
|
|
||||||
system: true
|
|
||||||
register: service_user
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Create install directory
|
|
||||||
file:
|
|
||||||
path: "{{ install_directory }}/{{ role_name }}"
|
|
||||||
state: directory
|
|
||||||
owner: "{{ docker_user }}"
|
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Copy docker-compose file to destination
|
|
||||||
template:
|
|
||||||
src: docker-compose.yml
|
|
||||||
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
|
||||||
owner: "{{ docker_user }}"
|
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
|
||||||
validate: docker-compose -f %s config
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Start docker container
|
|
||||||
community.docker.docker_compose:
|
|
||||||
project_src: "{{ install_directory }}/{{ role_name }}"
|
|
||||||
pull: true
|
|
||||||
remove_orphans: yes
|
|
@@ -1,22 +0,0 @@
|
|||||||
version: "{{ docker_compose_version }}"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
minetest:
|
|
||||||
container_name: minetest
|
|
||||||
image: lscr.io/linuxserver/minetest:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- traefik
|
|
||||||
environment:
|
|
||||||
- "PUID={{ service_user.uid }}"
|
|
||||||
- "PGID={{ service_user.uid }}"
|
|
||||||
- "TZ={{ timezone }}"
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/{{ role_name }}:/config/.minetest"
|
|
||||||
labels:
|
|
||||||
traefik.enable: true
|
|
||||||
traefik.http.routers.minetest.rule: "Host(`minetest.{{ personal_domain }}`)"
|
|
5
ansible/roles/searxng/handlers/main.yml
Normal file
5
ansible/roles/searxng/handlers/main.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
- name: restart searxng
|
||||||
|
community.docker.docker_compose:
|
||||||
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
|
restarted: true
|
||||||
|
|
@@ -1,10 +1,3 @@
|
|||||||
- name: Create service user
|
|
||||||
user:
|
|
||||||
name: "{{ role_name }}"
|
|
||||||
system: true
|
|
||||||
register: service_user
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Create install directory
|
- name: Create install directory
|
||||||
file:
|
file:
|
||||||
path: "{{ install_directory }}/{{ role_name }}"
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
@@ -22,6 +15,14 @@
|
|||||||
validate: docker-compose -f %s config
|
validate: docker-compose -f %s config
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
|
- name: Copy settings file to destionation
|
||||||
|
template:
|
||||||
|
src: settings.yml
|
||||||
|
dest: "{{ data_dir }}/{{ role_name }}/settings.yml"
|
||||||
|
owner: "{{ docker_user }}"
|
||||||
|
become: true
|
||||||
|
notify: restart searxng
|
||||||
|
|
||||||
- name: Start docker container
|
- name: Start docker container
|
||||||
community.docker.docker_compose:
|
community.docker.docker_compose:
|
||||||
project_src: "{{ install_directory }}/{{ role_name }}"
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
38
ansible/roles/searxng/templates/docker-compose.yml
Normal file
38
ansible/roles/searxng/templates/docker-compose.yml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
version: "{{ docker_compose_version }}"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
searxng:
|
||||||
|
container_name: searxng
|
||||||
|
image: searxng/searxng
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
|
volumes:
|
||||||
|
- "{{ data_dir }}/{{ role_name }}:/etc/searxng"
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
cap_add:
|
||||||
|
- CHOWN
|
||||||
|
- SETGID
|
||||||
|
- SETUID
|
||||||
|
labels:
|
||||||
|
traefik.enable: true
|
||||||
|
traefik.http.routers.searxng.rule: "Host(`search.{{ personal_domain }}`)"
|
||||||
|
traefik.http.routers.searxng.middlewares: lan-whitelist@file
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
command: redis-server --save "" --appendonly "no"
|
||||||
|
tmpfs:
|
||||||
|
- /var/lib/redis
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
cap_add:
|
||||||
|
- SETGID
|
||||||
|
- SETUID
|
||||||
|
- DAC_OVERRIDE
|
1890
ansible/roles/searxng/templates/settings.yml
Normal file
1890
ansible/roles/searxng/templates/settings.yml
Normal file
File diff suppressed because it is too large
Load Diff
10
ansible/roles/searxng/vars/main.yml
Normal file
10
ansible/roles/searxng/vars/main.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
searxng_secret_key: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
33656138666464373665663339363665346566613637626131363335336535313131333265646539
|
||||||
|
3037373439643964343139383764386364623961383737610a313063613736316437366239663238
|
||||||
|
65333735633661316463336665353138623264396534383865363134613165636164303765356265
|
||||||
|
3865626366613966660a313738353339313133393765643136306361373061366132373130656531
|
||||||
|
61396230346333346636356562353733623332333662653164373630626339376433353663313862
|
||||||
|
61303230613135336662313531313836363466623162666233646231616333643536303233616231
|
||||||
|
62353866333465646162633738383866363338383932623335353038393130323932343363653233
|
||||||
|
62663465386661663262
|
@@ -1,29 +0,0 @@
|
|||||||
- name: Create service user
|
|
||||||
user:
|
|
||||||
name: "{{ role_name }}"
|
|
||||||
system: true
|
|
||||||
register: service_user
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Create install directory
|
|
||||||
file:
|
|
||||||
path: "{{ install_directory }}/{{ role_name }}"
|
|
||||||
state: directory
|
|
||||||
owner: "{{ docker_user }}"
|
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Copy docker-compose file to destination
|
|
||||||
template:
|
|
||||||
src: docker-compose.yml
|
|
||||||
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
|
||||||
owner: "{{ docker_user }}"
|
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
|
||||||
validate: docker-compose -f %s config
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Start docker container
|
|
||||||
community.docker.docker_compose:
|
|
||||||
project_src: "{{ install_directory }}/{{ role_name }}"
|
|
||||||
pull: true
|
|
||||||
remove_orphans: yes
|
|
@@ -1,50 +0,0 @@
|
|||||||
version: "{{ docker_compose_version }}"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
traefik:
|
|
||||||
external: true
|
|
||||||
db:
|
|
||||||
external: false
|
|
||||||
|
|
||||||
services:
|
|
||||||
{{ role_name }}:
|
|
||||||
container_name: "{{ role_name }}"
|
|
||||||
image: ghcr.io/nathanvaughn/webtrees:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- traefik
|
|
||||||
- db
|
|
||||||
environment:
|
|
||||||
PRETTY_URLS: "1"
|
|
||||||
BASE_URL: "https://ancestry.{{ personal_domain }}"
|
|
||||||
DB_TYPE: "pgsql"
|
|
||||||
DB_PORT: 5432
|
|
||||||
DB_HOST: "db"
|
|
||||||
DB_NAME: "webtrees"
|
|
||||||
DB_USER: "webtrees"
|
|
||||||
DB_PASSWORD: "webtrees"
|
|
||||||
WT_USER: "mike"
|
|
||||||
WT_PASS: "mike"
|
|
||||||
WT_EMAIL: email@email.com
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/{{ role_name }}/data:/var/www/webtrees/data"
|
|
||||||
- "{{ data_dir }}/{{ role_name }}/media:/var/www/webtrees/media"
|
|
||||||
labels:
|
|
||||||
traefik.enable: true
|
|
||||||
traefik.http.routers.{{ role_name }}.rule: "Host(`ancestry.{{ personal_domain }}`)"
|
|
||||||
traefik.http.routers.{{ role_name }}.middlewares: lan-whitelist@file
|
|
||||||
|
|
||||||
db:
|
|
||||||
image: lscr.io/linuxserver/mariadb:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- db
|
|
||||||
environment:
|
|
||||||
TZ: {{ timezone }}
|
|
||||||
MYSQL_DATABASE: webtrees
|
|
||||||
MYSQL_USER: webtrees
|
|
||||||
MYSQL_PASSWORD: webtrees
|
|
||||||
MYSQL_ROOT_PASSWORD: webtrees
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/mariadb/webtrees:/config"
|
|
||||||
|
|
Reference in New Issue
Block a user