Локальная галерея кастомных AHS-иконок.
Поддерживает SVG, PNG и ICO, drag&drop-загрузку, редактирование карточек, выбор логотипа и прямые ссылки на файлы.
На новом сервере достаточно выполнить одну команду:
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/akinin/icons/main/docker-install.sh)"Скрипт установит Docker, если его нет, создаст каталог /opt/ahs-icons, скачает образ akininav/icons:latest из Docker Hub и запустит контейнер через Docker Compose.
Открыть:
http://SERVER_IP:4051/
Если иконки нужно хранить в примонтированной NFS-папке, сначала примонтируйте ее на сервере, затем укажите путь при запуске:
sudo AHS_ICONS_DATA_PATH=/mnt/nfs/ahs-icons bash -c "$(curl -fsSL https://raw.githubusercontent.com/akinin/icons/main/docker-install.sh)"Можно сразу поменять порт:
sudo AHS_ICONS_PORT=8080 AHS_ICONS_DATA_PATH=/mnt/nfs/ahs-icons bash -c "$(curl -fsSL https://raw.githubusercontent.com/akinin/icons/main/docker-install.sh)"Контейнер пишет данные в /data, а на хосте эта папка монтируется из AHS_ICONS_DATA_PATH.
Внутри папки хранения будут:
icons.json
settings.json
icons/<icon-id>/
На Proxmox-хосте можно запустить мастер создания LXC-контейнера:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/akinin/icons/main/proxmox-lxc-install.sh)"Скрипт спросит:
- CTID или возьмет следующий свободный автоматически;
- шаблон Debian, storage, CPU, RAM, swap и размер диска;
- IP контейнера:
dhcpили статический адрес с gateway; - NFS-путь, например
10.10.100.11:/volume1/icons; - локальный путь монтирования NFS на Proxmox, например
/mnt/icons; - путь внутри LXC, например
/mnt/icons; - порт веб-интерфейса.
После этого он создаст unprivileged LXC с nesting=1,keyctl=1, добавит mount point, установит Docker внутри контейнера и запустит AHS Icons.
По умолчанию скрипт создает:
/opt/ahs-icons/.env
/opt/ahs-icons/docker-compose.yml
/opt/ahs-icons/data/
Посмотреть настройки:
cat /opt/ahs-icons/.envПерезапустить:
cd /opt/ahs-icons
docker compose up -dОбновить контейнер:
cd /opt/ahs-icons
docker compose pull
docker compose up -dОстановить:
cd /opt/ahs-icons
docker compose downЕсли проект уже скачан локально:
cp .env.example .env
nano .env
docker compose up -dПример .env:
AHS_ICONS_IMAGE=akininav/icons:latest
AHS_ICONS_PORT=4051
AHS_ICONS_DATA_PATH=/mnt/nfs/ahs-iconsЛокальная сборка:
docker build -t akininav/icons:latest .Запуск без compose:
docker run -d \
--name ahs-icons \
--restart unless-stopped \
-p 4051:4051 \
-e AHS_ICONS_DATA=/data \
-v /mnt/nfs/ahs-icons:/data \
akininav/icons:latestpython3 server.py --host 0.0.0.0 --port 4051 --data-dir ./data