Compare commits

..

11 commits

18 changed files with 100 additions and 25 deletions

View file

@ -5,11 +5,16 @@ Description=A local LLM server
# keep-sorted start # keep-sorted start
AutoUpdate=registry AutoUpdate=registry
ContainerName=ollama ContainerName=ollama
DropCapability=ALL
Environment=OLLAMA_KEEP_ALIVE=10m Environment=OLLAMA_KEEP_ALIVE=10m
HealthCmd=ollama list
# HealthInterval=30s
# HealthStartPeriod=15s
Image=docker.io/ollama/ollama:latest Image=docker.io/ollama/ollama:latest
Network=ollama.network Network=ollama.network
PodmanArgs=--transient-store NoNewPrivileges=true
PublishPort=11434:11434 PodmanArgs=--pull=newer --transient-store
PublishPort=127.0.0.1:11434:11434
ReadOnly=true ReadOnly=true
Volume=%h/.local/share/ollama:/root/.ollama:ro,z Volume=%h/.local/share/ollama:/root/.ollama:ro,z
# keep-sorted end # keep-sorted end

View file

@ -5,10 +5,12 @@ Description=A local PlantUML server
# keep-sorted start # keep-sorted start
AutoUpdate=registry AutoUpdate=registry
ContainerName=plantuml ContainerName=plantuml
DropCapability=ALL
Image=docker.io/plantuml/plantuml-server:jetty Image=docker.io/plantuml/plantuml-server:jetty
Network=private Network=private
PodmanArgs=--transient-store NoNewPrivileges=true
PublishPort=8080:8080 PodmanArgs=--pull=newer --transient-store
PublishPort=127.0.0.1:8080:8080
ReadOnly=true ReadOnly=true
# keep-sorted end # keep-sorted end

View file

@ -7,12 +7,15 @@ AutoUpdate=registry
ContainerName=transmission ContainerName=transmission
Environment=PGID=1000 Environment=PGID=1000
Environment=PUID=1000 Environment=PUID=1000
HealthCmd=curl --fail --silent http://localhost:9091/
# HealthInterval=30s
# HealthStartPeriod=30s
Image=lscr.io/linuxserver/transmission:latest Image=lscr.io/linuxserver/transmission:latest
Network=private Network=private
PodmanArgs=--transient-store PodmanArgs=--pull=newer --transient-store
PublishPort=127.0.0.1:9091:9091
PublishPort=51413:51413 PublishPort=51413:51413
PublishPort=51413:51413/udp PublishPort=51413:51413/udp
PublishPort=9091:9091
ReadOnly=true ReadOnly=true
UserNS=keep-id UserNS=keep-id
Volume=%h/.config/transmission:/config:Z Volume=%h/.config/transmission:/config:Z

View file

@ -30,10 +30,14 @@
(use-package emacs (use-package emacs
:ensure nil :ensure nil
:bind (("C-z" . nil) :bind (
("C-z i" . find-init-file) ("C-z" . nil)
;; keep-sorted start
("C-z f" . ffap) ("C-z f" . ffap)
("C-z u" . insert-uuid4-at-point)) ("C-z i" . find-init-file)
("C-z u" . insert-uuid4-at-point)
;; keep-sorted end
)
:hook ( :hook (
;; keep-sorted start ;; keep-sorted start
(after-save . executable-make-buffer-file-executable-if-script-p) (after-save . executable-make-buffer-file-executable-if-script-p)

View file

@ -5,6 +5,8 @@ IFS=$'\n\t'
# keep-sorted start # keep-sorted start
systemctl --user enable --now backup.timer systemctl --user enable --now backup.timer
systemctl --user enable --now podman-healthcheck@ollama.timer
systemctl --user enable --now podman-healthcheck@transmission.timer
systemctl --user enable --now sync-backup.timer systemctl --user enable --now sync-backup.timer
systemctl --user enable --now sync-git-repos.timer systemctl --user enable --now sync-git-repos.timer
# keep-sorted end # keep-sorted end

View file

@ -0,0 +1,6 @@
[Unit]
Description=Podman health check for %i
[Service]
Type=oneshot
ExecStart=podman --transient-store healthcheck run %i

View file

@ -0,0 +1,11 @@
[Unit]
Description=Podman health check timer for %i
BindsTo=%i.service
After=%i.service
[Timer]
OnActiveSec=30s
OnUnitActiveSec=30s
[Install]
WantedBy=%i.service

View file

@ -20,3 +20,5 @@
# keep-sorted end # keep-sorted end
[include] [include]
path = .hostgitconfig path = .hostgitconfig
[core]
excludesfile = /home/ohad/.gitignore_global

3
.gitignore_global Normal file
View file

@ -0,0 +1,3 @@
/conversation-id.txt
/conversation-id-*.txt
/.claude/settings.local.json

View file

@ -11,8 +11,8 @@ dolt_resource() {
} }
install_dolt() { install_dolt() {
tar xz --directory="$(systemd-path user-binaries)" --strip-components=2 dolt-linux-amd64/bin/dolt tar xz --directory="$(systemd-path user-binaries)" --strip-components=2 dolt-linux-amd64/bin/dolt && \
chmod 550 "$(systemd-path user-binaries)"/dolt chmod 550 "$(systemd-path user-binaries)"/dolt
} }
github_update "${package}" "${repo}" dolt_resource install_dolt github_update "${package}" "${repo}" dolt_resource install_dolt

View file

@ -11,8 +11,8 @@ kingfisher_resource() {
} }
install_kingfisher() { install_kingfisher() {
tar xz --directory="$(systemd-path user-binaries)" kingfisher tar xz --directory="$(systemd-path user-binaries)" kingfisher && \
chmod 550 "$(systemd-path user-binaries)"/kingfisher chmod 550 "$(systemd-path user-binaries)"/kingfisher
} }
github_update "${package}" "${repo}" kingfisher_resource install_kingfisher github_update "${package}" "${repo}" kingfisher_resource install_kingfisher

View file

@ -11,10 +11,10 @@ minikube_resource() {
} }
install_minikube() { install_minikube() {
tempfile="$(mktemp)" tempfile="$(mktemp)" && \
cat - > "${tempfile}" cat - > "${tempfile}" && \
chmod 550 "${tempfile}" chmod 550 "${tempfile}" && \
mv "${tempfile}" "$(systemd-path user-binaries)"/minikube mv "${tempfile}" "$(systemd-path user-binaries)"/minikube
} }
github_update "${package}" "${repo}" minikube_resource install_minikube github_update "${package}" "${repo}" minikube_resource install_minikube

View file

@ -11,10 +11,10 @@ rust_analyzer_resource() {
} }
install_rust_analyzer() { install_rust_analyzer() {
tempfile="$(mktemp)" tempfile="$(mktemp)" && \
gunzip --to-stdout - > "${tempfile}" gunzip --to-stdout - > "${tempfile}" && \
chmod 550 "${tempfile}" chmod 550 "${tempfile}" && \
mv "${tempfile}" "$(systemd-path user-binaries)"/rust-analyzer mv "${tempfile}" "$(systemd-path user-binaries)"/rust-analyzer
} }
github_update "${package}" "${repo}" rust_analyzer_resource install_rust_analyzer github_update "${package}" "${repo}" rust_analyzer_resource install_rust_analyzer

View file

@ -0,0 +1,20 @@
#! /usr/bin/bash
set -euo pipefail
IFS=$'\n\t'
package=simplex-chat
repo=simplex-chat/simplex-chat
sc_resource() {
echo "simplex-chat-ubuntu-24_04-x86_64"
}
install_sc() {
tempfile="$(mktemp)" && \
cat - > "${tempfile}" && \
chmod 550 "${tempfile}" && \
mv "${tempfile}" "$(systemd-path user-binaries)"/simplex-chat
}
github_update "${package}" "${repo}" sc_resource install_sc

View file

@ -11,10 +11,10 @@ uv_resource() {
} }
install_uv() { install_uv() {
tempdir="$(mktemp --directory)" tempdir="$(mktemp --directory)" && \
tar xz --directory="${tempdir}" --strip-components=1 && \ tar xz --directory="${tempdir}" --strip-components=1 && \
chmod 550 "${tempdir}"/uv "${tempdir}"/uvx && \ chmod 550 "${tempdir}"/uv "${tempdir}"/uvx && \
mv --force "${tempdir}"/uv "${tempdir}"/uvx "$(systemd-path user-binaries)" mv --force "${tempdir}"/uv "${tempdir}"/uvx "$(systemd-path user-binaries)"
} }
github_update "${package}" "${repo}" uv_resource install_uv github_update "${package}" "${repo}" uv_resource install_uv

1
.ssh/config Normal file
View file

@ -0,0 +1 @@
Include ~/.ssh/config.d/*.conf

View file

@ -0,0 +1,14 @@
# SSH client algorithm hardening.
#
# Require PQ-hybrid KEX, AEAD ciphers, Ed25519 keys.
# Applied to all outgoing SSH connections from this machine.
#
# Requires OpenSSH 9.9+ for mlkem768x25519-sha256.
Host *
KexAlgorithms mlkem768x25519-sha256,sntrup761x25519-sha512@openssh.com
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
HostKeyAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com
PubkeyAcceptedAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com
RekeyLimit 1G 1h

View file

@ -0,0 +1,2 @@
Host *
SetEnv TERM=xterm-256color