first commit
This commit is contained in:
66
Makefile
Normal file
66
Makefile
Normal file
@@ -0,0 +1,66 @@
|
||||
HOST = 172.16.0.214
|
||||
SSH_USER = root
|
||||
SSH = ssh $(SSH_USER)@$(HOST)
|
||||
SCP = scp
|
||||
|
||||
JAIL_NAME = cyclingbot
|
||||
JAIL_ROOT = /jails/$(JAIL_NAME)
|
||||
BINARY = cycling-bot
|
||||
|
||||
.PHONY: all build deploy deploy-env restart stop logs status clean
|
||||
|
||||
all: build deploy start
|
||||
|
||||
# Cross-compile for FreeBSD amd64
|
||||
build:
|
||||
GOOS=freebsd GOARCH=amd64 go build -o $(BINARY) .
|
||||
|
||||
# Create required directories inside the jail (safe to run multiple times)
|
||||
setup:
|
||||
$(SSH) "mkdir -p $(JAIL_ROOT)/usr/local/bin \
|
||||
$(JAIL_ROOT)/usr/local/etc/rc.d \
|
||||
$(JAIL_ROOT)/var/db/$(JAIL_NAME) \
|
||||
$(JAIL_ROOT)/var/log \
|
||||
$(JAIL_ROOT)/var/run"
|
||||
|
||||
# Copy binary and rc.d script into the jail (via /tmp to avoid jail dir permission issues)
|
||||
deploy: build setup
|
||||
$(SCP) $(BINARY) $(SSH_USER)@$(HOST):/tmp/$(BINARY)
|
||||
$(SCP) rc.d/$(JAIL_NAME) $(SSH_USER)@$(HOST):/tmp/$(JAIL_NAME)-rcd
|
||||
$(SSH) "jexec $(JAIL_NAME) service $(JAIL_NAME) stop 2>/dev/null; \
|
||||
rm -f $(JAIL_ROOT)/usr/local/bin/$(BINARY) && \
|
||||
cp /tmp/$(BINARY) $(JAIL_ROOT)/usr/local/bin/$(BINARY) && \
|
||||
chmod +x $(JAIL_ROOT)/usr/local/bin/$(BINARY) && \
|
||||
rm /tmp/$(BINARY) && \
|
||||
rm -f $(JAIL_ROOT)/usr/local/etc/rc.d/$(JAIL_NAME) && \
|
||||
cp /tmp/$(JAIL_NAME)-rcd $(JAIL_ROOT)/usr/local/etc/rc.d/$(JAIL_NAME) && \
|
||||
chmod +x $(JAIL_ROOT)/usr/local/etc/rc.d/$(JAIL_NAME) && \
|
||||
rm /tmp/$(JAIL_NAME)-rcd"
|
||||
|
||||
# Copy .env separately (run once — avoid overwriting production config)
|
||||
deploy-env:
|
||||
$(SCP) .env \
|
||||
$(SSH_USER)@$(HOST):$(JAIL_ROOT)/var/db/$(JAIL_NAME)/.env
|
||||
$(SSH) "chmod 600 $(JAIL_ROOT)/var/db/$(JAIL_NAME)/.env && \
|
||||
chown 1001:1001 $(JAIL_ROOT)/var/db/$(JAIL_NAME)/.env"
|
||||
|
||||
start:
|
||||
$(SSH) "rm -f $(JAIL_ROOT)/var/run/$(JAIL_NAME).pid && \
|
||||
jexec $(JAIL_NAME) service $(JAIL_NAME) start"
|
||||
|
||||
restart:
|
||||
$(SSH) "jexec $(JAIL_NAME) service $(JAIL_NAME) stop 2>/dev/null; \
|
||||
rm -f $(JAIL_ROOT)/var/run/$(JAIL_NAME).pid && \
|
||||
jexec $(JAIL_NAME) service $(JAIL_NAME) start"
|
||||
|
||||
stop:
|
||||
$(SSH) "jexec $(JAIL_NAME) service $(JAIL_NAME) stop"
|
||||
|
||||
logs:
|
||||
$(SSH) "jexec $(JAIL_NAME) tail -f /var/log/$(JAIL_NAME).log"
|
||||
|
||||
status:
|
||||
$(SSH) "jls && jexec $(JAIL_NAME) service $(JAIL_NAME) status"
|
||||
|
||||
clean:
|
||||
rm -f $(BINARY)
|
||||
Reference in New Issue
Block a user