mirror of
https://git.bwaaa.monster/omnisearch
synced 2026-03-25 17:19:02 +02:00
feature: added installation command and service files
This commit is contained in:
113
Makefile
113
Makefile
@@ -44,4 +44,115 @@ info:
|
|||||||
@echo "Object files to generate:"
|
@echo "Object files to generate:"
|
||||||
@echo "$(OBJS)" | tr ' ' '\n'
|
@echo "$(OBJS)" | tr ' ' '\n'
|
||||||
|
|
||||||
.PHONY: all run clean rebuild info
|
PREFIX ?= /usr
|
||||||
|
INSTALL_BIN_DIR := $(PREFIX)/bin
|
||||||
|
DATA_DIR := /etc/omnisearch
|
||||||
|
CONF_DIR := /etc/omnisearch
|
||||||
|
VAR_DIR := /var/lib/omnisearch
|
||||||
|
LOG_DIR := /var/log/omnisearch
|
||||||
|
CACHE_DIR := /var/cache/omnisearch
|
||||||
|
USER := omnisearch
|
||||||
|
GROUP := omnisearch
|
||||||
|
|
||||||
|
SYSTEMD_DIR := /etc/systemd/system
|
||||||
|
OPENRC_DIR := /etc/init.d
|
||||||
|
|
||||||
|
install:
|
||||||
|
@echo "Available install targets:"
|
||||||
|
@echo " make install-systemd"
|
||||||
|
@echo " make install-openrc"
|
||||||
|
@echo " make install-runit"
|
||||||
|
@echo " make install-s6"
|
||||||
|
@echo ""
|
||||||
|
@echo "Example: doas/sudo make install-openrc"
|
||||||
|
|
||||||
|
install-systemd: $(TARGET)
|
||||||
|
@mkdir -p $(DATA_DIR)/templates $(DATA_DIR)/static $(LOG_DIR) $(CACHE_DIR)
|
||||||
|
@cp -rf templates/* $(DATA_DIR)/templates/
|
||||||
|
@cp -rf static/* $(DATA_DIR)/static/
|
||||||
|
@cp example-config.ini $(DATA_DIR)/config.ini
|
||||||
|
install -m 755 $(TARGET) $(INSTALL_BIN_DIR)/omnisearch
|
||||||
|
@echo "Setting up user '$(USER)'..."
|
||||||
|
@(grep -q '^$(GROUP):' /etc/group || groupadd $(GROUP)) 2>/dev/null || true
|
||||||
|
@id -u $(USER) >/dev/null 2>&1 || useradd --system --home $(DATA_DIR) --shell /usr/sbin/nologin -g $(GROUP) $(USER)
|
||||||
|
@chown -R $(USER):$(GROUP) $(LOG_DIR) $(CACHE_DIR) $(VAR_DIR) $(DATA_DIR) 2>/dev/null || true
|
||||||
|
@chown $(USER):$(GROUP) $(DATA_DIR)/config.ini 2>/dev/null || true
|
||||||
|
install -m 644 init/systemd/omnisearch.service $(SYSTEMD_DIR)/omnisearch.service
|
||||||
|
@echo ""
|
||||||
|
@echo "Config: $(DATA_DIR)/config.ini"
|
||||||
|
@echo "Edit config with: nano $(DATA_DIR)/config.ini"
|
||||||
|
@echo "Installed systemd service to $(SYSTEMD_DIR)/omnisearch.service"
|
||||||
|
@echo "Run 'systemctl enable --now omnisearch' to start"
|
||||||
|
|
||||||
|
install-openrc: $(TARGET)
|
||||||
|
@mkdir -p $(DATA_DIR)/templates $(DATA_DIR)/static $(LOG_DIR) $(CACHE_DIR)
|
||||||
|
@cp -rf templates/* $(DATA_DIR)/templates/
|
||||||
|
@cp -rf static/* $(DATA_DIR)/static/
|
||||||
|
@cp example-config.ini $(DATA_DIR)/config.ini
|
||||||
|
install -m 755 $(TARGET) $(INSTALL_BIN_DIR)/omnisearch
|
||||||
|
@echo "Setting up user '$(USER)'..."
|
||||||
|
@(grep -q '^$(GROUP):' /etc/group || groupadd $(GROUP)) 2>/dev/null || true
|
||||||
|
@id -u $(USER) >/dev/null 2>&1 || useradd --system --home $(DATA_DIR) --shell /usr/sbin/nologin -g $(GROUP) $(USER)
|
||||||
|
@chown -R $(USER):$(GROUP) $(LOG_DIR) $(CACHE_DIR) $(VAR_DIR) $(DATA_DIR) 2>/dev/null || true
|
||||||
|
@chown $(USER):$(GROUP) $(DATA_DIR)/config.ini 2>/dev/null || true
|
||||||
|
install -m 755 init/openrc/omnisearch $(OPENRC_DIR)/omnisearch
|
||||||
|
@echo ""
|
||||||
|
@echo "Config: $(DATA_DIR)/config.ini"
|
||||||
|
@echo "Edit config with: nano $(DATA_DIR)/config.ini"
|
||||||
|
@echo "Installed openrc service to $(OPENRC_DIR)/omnisearch"
|
||||||
|
@echo "Run 'rc-update add omnisearch default' to enable"
|
||||||
|
|
||||||
|
install-runit: $(TARGET)
|
||||||
|
@mkdir -p $(DATA_DIR)/templates $(DATA_DIR)/static $(LOG_DIR) $(CACHE_DIR)
|
||||||
|
@cp -rf templates/* $(DATA_DIR)/templates/
|
||||||
|
@cp -rf static/* $(DATA_DIR)/static/
|
||||||
|
@cp example-config.ini $(DATA_DIR)/config.ini
|
||||||
|
install -m 755 $(TARGET) $(INSTALL_BIN_DIR)/omnisearch
|
||||||
|
@echo "Setting up user '$(USER)'..."
|
||||||
|
@(grep -q '^$(GROUP):' /etc/group || groupadd $(GROUP)) 2>/dev/null || true
|
||||||
|
@id -u $(USER) >/dev/null 2>&1 || useradd --system --home $(DATA_DIR) --shell /usr/sbin/nologin -g $(GROUP) $(USER)
|
||||||
|
@chown -R $(USER):$(GROUP) $(LOG_DIR) $(CACHE_DIR) $(VAR_DIR) $(DATA_DIR) 2>/dev/null || true
|
||||||
|
@chown $(USER):$(GROUP) $(DATA_DIR)/config.ini 2>/dev/null || true
|
||||||
|
@mkdir -p /etc/service/omnisearch/log/supervise/control
|
||||||
|
install -m 755 init/runit/run /etc/service/omnisearch/run
|
||||||
|
install -m 755 init/runit/log/run /etc/service/omnisearch/log/run
|
||||||
|
install -m 755 init/runit/log/run /etc/service/omnisearch/log/supervise/control
|
||||||
|
@echo ""
|
||||||
|
@echo "Config: $(DATA_DIR)/config.ini"
|
||||||
|
@echo "Edit config with: nano $(DATA_DIR)/config.ini"
|
||||||
|
@echo "Installed runit service to /etc/service/omnisearch"
|
||||||
|
@echo "Service will start automatically"
|
||||||
|
|
||||||
|
install-s6: $(TARGET)
|
||||||
|
@mkdir -p $(DATA_DIR)/templates $(DATA_DIR)/static $(LOG_DIR) $(CACHE_DIR)
|
||||||
|
@cp -rf templates/* $(DATA_DIR)/templates/
|
||||||
|
@cp -rf static/* $(DATA_DIR)/static/
|
||||||
|
@cp example-config.ini $(DATA_DIR)/config.ini
|
||||||
|
install -m 755 $(TARGET) $(INSTALL_BIN_DIR)/omnisearch
|
||||||
|
@echo "Setting up user '$(USER)'..."
|
||||||
|
@(grep -q '^$(GROUP):' /etc/group || groupadd $(GROUP)) 2>/dev/null || true
|
||||||
|
@id -u $(USER) >/dev/null 2>&1 || useradd --system --home $(DATA_DIR) --shell /usr/sbin/nologin -g $(GROUP) $(USER)
|
||||||
|
@chown -R $(USER):$(GROUP) $(LOG_DIR) $(CACHE_DIR) $(VAR_DIR) $(DATA_DIR) 2>/dev/null || true
|
||||||
|
@chown $(USER):$(GROUP) $(DATA_DIR)/config.ini 2>/dev/null || true
|
||||||
|
@mkdir -p /var/service/omnisearch/log/supervise/control
|
||||||
|
install -m 755 init/s6/run /var/service/omnisearch/run
|
||||||
|
install -m 755 init/s6/log/run /var/service/omnisearch/log/run
|
||||||
|
install -m 755 init/s6/log/run /var/service/omnisearch/log/supervise/control
|
||||||
|
@echo ""
|
||||||
|
@echo "Config: $(DATA_DIR)/config.ini"
|
||||||
|
@echo "Edit config with: nano $(DATA_DIR)/config.ini"
|
||||||
|
@echo "Installed s6 service to /var/service/omnisearch"
|
||||||
|
@echo "Service will start automatically"
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
rm -f $(INSTALL_BIN_DIR)/omnisearch
|
||||||
|
rm -rf $(DATA_DIR)
|
||||||
|
rm -f $(SYSTEMD_DIR)/omnisearch.service
|
||||||
|
rm -f $(OPENRC_DIR)/omnisearch
|
||||||
|
rm -rf /etc/service/omnisearch
|
||||||
|
rm -rf /var/service/omnisearch
|
||||||
|
@id -u $(USER) >/dev/null 2>&1 && userdel $(USER) 2>/dev/null || true
|
||||||
|
@grep -q '^$(GROUP):' /etc/group 2>/dev/null && groupdel $(GROUP) 2>/dev/null || true
|
||||||
|
@echo "Uninstalled omnisearch"
|
||||||
|
|
||||||
|
.PHONY: all run clean rebuild info install install-systemd install-openrc install-runit install-s6 uninstall
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[server]
|
[server]
|
||||||
host = 0.0.0.0
|
host = 0.0.0.0
|
||||||
port = 8000
|
port = 8087
|
||||||
|
|
||||||
[proxy]
|
[proxy]
|
||||||
# Single proxy (comment out to use list_file instead)
|
# Single proxy (comment out to use list_file instead)
|
||||||
|
|||||||
19
init/openrc/omnisearch
Executable file
19
init/openrc/omnisearch
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
name=omnisearch
|
||||||
|
description="Omnisearch Web Search Server"
|
||||||
|
command="/usr/bin/omnisearch"
|
||||||
|
command_background=yes
|
||||||
|
pidfile="/run/${RC_SVCNAME}.pid"
|
||||||
|
output_log="/var/log/omnisearch/omnisearch.log"
|
||||||
|
error_log="/var/log/omnisearch/omnisearch.err"
|
||||||
|
user=omnisearch
|
||||||
|
group=omnisearch
|
||||||
|
directory=/etc/omnisearch
|
||||||
|
respawn_delay=5
|
||||||
|
respawn_max=10
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need net
|
||||||
|
after firewall
|
||||||
|
}
|
||||||
2
init/runit/log/run
Executable file
2
init/runit/log/run
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
exec chpst -u omnisearch:omnisearch svlogd -tt /var/log/omnisearch
|
||||||
2
init/runit/run
Executable file
2
init/runit/run
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
exec chpst -u omnisearch:omnisearch /usr/bin/omnisearch 2>&1
|
||||||
2
init/s6/log/run
Executable file
2
init/s6/log/run
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/execlineb -P
|
||||||
|
exec -c chpst -u omnisearch:omnisearch s6-log -d 3 /var/log/omnisearch
|
||||||
3
init/s6/run
Executable file
3
init/s6/run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/execlineb -P
|
||||||
|
foreground { s6-setsid -g }
|
||||||
|
exec -c chpst -u omnisearch:omnisearch /usr/bin/omnisearch
|
||||||
17
init/systemd/omnisearch.service
Normal file
17
init/systemd/omnisearch.service
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Omnisearch Web Search Server
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=omnisearch
|
||||||
|
Group=omnisearch
|
||||||
|
WorkingDirectory=/etc/omnisearch
|
||||||
|
ExecStart=/usr/bin/omnisearch
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
PrivateTmp=yes
|
||||||
|
NoNewPrivileges=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
Reference in New Issue
Block a user