Compare commits
5 Commits
f9fb28d560
...
feat/7zz-c
| Author | SHA1 | Date | |
|---|---|---|---|
| 9d2404d8f6 | |||
| d3f2e3b7b9 | |||
| 6a44120b1a | |||
| 38a1451689 | |||
| 8d1ae7e632 |
@@ -55,9 +55,9 @@ services:
|
||||
volumes:
|
||||
- /mnt/HoardingCow_docker_data/Hermes/data:/opt/data
|
||||
# Syncthing-shared org files — read-only view of user's agenda
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/org-ro:/opt/data/org-ro:ro
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/telos-ro:/opt/data/telos-ro:ro
|
||||
# Syncthing-shared inbox — write tasks here, they sync to user's laptop
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/org-rw:/opt/data/org-rw:rw
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/telos-rw:/opt/data/telos-rw:rw
|
||||
devices:
|
||||
- /dev/kfd:/dev/kfd
|
||||
- /dev/dri:/dev/dri
|
||||
@@ -80,8 +80,8 @@ services:
|
||||
- TZ=America/Montreal
|
||||
volumes:
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/config:/var/syncthing/config
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/org-ro:/org-ro
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/org-rw:/org-rw
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/telos-ro:/telos-ro
|
||||
- /mnt/HoardingCow_docker_data/Syncthing/telos-rw:/telos-rw
|
||||
networks:
|
||||
- ai_backend
|
||||
- ai_net
|
||||
|
||||
@@ -79,6 +79,39 @@ PYEOF
|
||||
COPY --chmod=0755 himalaya-ro.sh /usr/local/bin/himalaya-ro
|
||||
|
||||
|
||||
# ---------- Install 7-Zip (7zz) for CHM extraction ----------
|
||||
RUN /opt/hermes/.venv/bin/python3 /dev/stdin << 'PYEOF'
|
||||
import urllib.request, tarfile, os, shutil, re, subprocess
|
||||
|
||||
# Scrape 7-zip.org for latest Linux x64 binary link
|
||||
url = 'https://7-zip.org/download.html'
|
||||
req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
|
||||
r = urllib.request.urlopen(req, timeout=15)
|
||||
html = r.read().decode()
|
||||
match = re.search(r'href="(a/7z[\d]+-linux-x64\.tar\.xz)"', html)
|
||||
if not match:
|
||||
raise RuntimeError('Could not find 7z Linux x64 download link on 7-zip.org')
|
||||
dl_url = f'https://7-zip.org/{match.group(1)}'
|
||||
|
||||
# Follow Himalaya pattern: download, extract, install, verify
|
||||
xz = '/tmp/7z.tar.xz'
|
||||
urllib.request.urlretrieve(dl_url, xz)
|
||||
os.makedirs('/tmp/7z', exist_ok=True)
|
||||
with tarfile.open(xz, 'r:xz') as t:
|
||||
t.extractall('/tmp/7z')
|
||||
shutil.move('/tmp/7z/7zz', '/usr/local/bin/7zz')
|
||||
os.chmod('/usr/local/bin/7zz', 0o755)
|
||||
shutil.rmtree('/tmp/7z', ignore_errors=True)
|
||||
os.remove(xz)
|
||||
|
||||
# Verify
|
||||
result = subprocess.run(['/usr/local/bin/7zz'], capture_output=True, text=True)
|
||||
assert result.returncode == 0, f'7zz verify failed: {result.stderr}'
|
||||
version = result.stdout.split()[2] if result.stdout else 'unknown'
|
||||
print(f'7-Zip {version} installed successfully')
|
||||
PYEOF
|
||||
|
||||
|
||||
# ---------- Runtime ----------
|
||||
USER hermes
|
||||
ENV HERMES_HOME=/opt/data
|
||||
|
||||
@@ -8,13 +8,10 @@ services:
|
||||
- USER_GID=1000
|
||||
- GITEA__server__ROOT_URL=https://code.lazyworkhorse.net
|
||||
- GITEA__actions__ENABLED=true
|
||||
- GITEA__actions__DEFAULT_ACTIONS_URL=off
|
||||
- SSH_PORT=2222
|
||||
- SSH_LISTEN_PORT=2222
|
||||
# Enable Gitea Actions (act_runner required on host)
|
||||
- GITEA__actions__ENABLED=true
|
||||
# Don't fetch actions from GitHub (offline mode + local only)
|
||||
- GITEA__actions__DEFAULT_ACTIONS_URL=off
|
||||
volumes:
|
||||
- /mnt/HoardingCow_docker_data/Gitea:/data
|
||||
networks:
|
||||
|
||||
Reference in New Issue
Block a user