2026-06-06 21:10:48 +01:00
|
|
|
APP_PROJECT_NAMES=Api Org Blogs
|
|
|
|
|
APP_PROJECTS=src/Yavsc.Org/Yavsc.Org.csproj src/Yavsc.Api/Yavsc.Api.csproj
|
2026-02-28 14:22:33 +00:00
|
|
|
SLNDIR=..
|
2026-06-06 21:10:48 +01:00
|
|
|
DESTDIR=/srv/www/yavsc/
|
|
|
|
|
USER_AND_GROUP=www-data:www-data
|
|
|
|
|
CONFIGURATION=Release
|
|
|
|
|
DOTNET_FRAMEWORK=net10.0
|
2026-02-28 14:22:33 +00:00
|
|
|
|
2026-06-06 21:10:48 +01:00
|
|
|
include $(SLNDIR)/.env
|
2026-02-28 14:22:33 +00:00
|
|
|
|
2026-06-06 21:10:48 +01:00
|
|
|
generated/:
|
|
|
|
|
@mkdir -p $@
|
2026-02-28 14:22:33 +00:00
|
|
|
|
2026-06-06 21:10:48 +01:00
|
|
|
generated/Api.service:
|
|
|
|
|
generated/Org.service:
|
|
|
|
|
generated/Blogs.service:
|
|
|
|
|
|
|
|
|
|
generated/yavsc%.service: generated/ template.service $(SLNDIR)/.env
|
|
|
|
|
@cat template.service | APP_NAME="$*" \
|
|
|
|
|
DESTDIR="$(DESTDIR)" \
|
|
|
|
|
APP_SYSLOG_ID="yavsc$*" \
|
|
|
|
|
POSTGRES_HOST="$(POSTGRES_HOST)" \
|
|
|
|
|
POSTGRES_PORT="$(POSTGRES_PORT)" \
|
|
|
|
|
POSTGRES_DB="$(POSTGRES_DB)" \
|
|
|
|
|
POSTGRES_USER="$(POSTGRES_USER)" \
|
|
|
|
|
POSTGRES_PASSWORD="$(POSTGRES_PASSWORD)" \
|
|
|
|
|
ANTHROPIC_API_KEY="$(ANTHROPIC_API_KEY)" \
|
|
|
|
|
ANTHROPIC_MAX_TOKENS="$(ANTHROPIC_MAX_TOKENS)" \
|
|
|
|
|
envsubst > $@
|
|
|
|
|
@echo Created service file: $@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
copy-services: copy-service-Org copy-service-Api copy-service-Blogs
|
|
|
|
|
copy-service-Org: /etc/systemd/system/yavscOrg.service
|
|
|
|
|
copy-service-Api: /etc/systemd/system/yavscApi.service
|
|
|
|
|
copy-service-Blogs: /etc/systemd/system/yavscBlogs.service
|
|
|
|
|
|
|
|
|
|
copy-binaries:
|
|
|
|
|
for project in $(APP_PROJECT_NAMES); \
|
|
|
|
|
do \
|
|
|
|
|
sudo cp -a $(SLNDIR)/src/Yavsc.$${project}/bin/$(CONFIGURATION)/$(DOTNET_FRAMEWORK)/publish/* $(DESTDIR) ; \
|
|
|
|
|
done
|
|
|
|
|
sudo chown -R $(USER_AND_GROUP) $(DESTDIR)
|
|
|
|
|
|
|
|
|
|
/etc/systemd/system/yavsc%.service: generated/yavsc%.service
|
2026-02-28 14:22:33 +00:00
|
|
|
sudo cp $^ $@
|
2026-06-06 21:10:48 +01:00
|
|
|
sudo chown root:root $@
|
2026-02-28 14:22:33 +00:00
|
|
|
sudo systemctl daemon-reload
|
2026-06-06 21:10:48 +01:00
|
|
|
|
2026-02-28 14:22:33 +00:00
|
|
|
build_publish:
|
|
|
|
|
for f in $(APP_PROJECTS); do \
|
|
|
|
|
ASPNETCORE_ENV=$(CONFIGURATION) dotnet publish $(SLNDIR)/$$f ; \
|
|
|
|
|
done
|
|
|
|
|
|
2026-06-06 21:10:48 +01:00
|
|
|
install: build_publish copy-services copy-binaries
|
|
|
|
|
sudo systemctl daemon-reload
|
|
|
|
|
for project in $(APP_PROJECT_NAMES); \
|
|
|
|
|
do \
|
|
|
|
|
sudo systemctl enable yavsc$${project} ; \
|
|
|
|
|
sudo systemctl start yavsc$${project} ; \
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
reinstall: build_publish copy-services copy-binaries
|
|
|
|
|
for project in $(APP_PROJECT_NAMES); \
|
|
|
|
|
do \
|
|
|
|
|
sudo systemctl stop yavsc$${project} ; \
|
|
|
|
|
done
|
|
|
|
|
for project in $(APP_PROJECT_NAMES); \
|
|
|
|
|
do \
|
|
|
|
|
sudo systemctl start yavsc$${project} ; \
|
2026-02-28 14:22:33 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
|
|
showConfig:
|
|
|
|
|
@echo CONFIGURATION: $(CONFIGURATION)
|
|
|
|
|
@echo DESTDIR: $(DESTDIR)
|
|
|
|
|
|
2026-06-06 21:10:48 +01:00
|
|
|
clean:
|
|
|
|
|
rm -rf generated
|
|
|
|
|
|
|
|
|
|
.PHONY: build_publish mep showConfig copy-service-Api copy-service-Org copy-service-Blogs reinstall clean
|