refactoring for integration
This commit is contained in:
parent
80144bf9fc
commit
070f41ac7e
48 changed files with 100 additions and 46 deletions
|
|
@ -1,36 +1,80 @@
|
|||
APP_PROJECTS=src/Org/Org.csproj src/Api/Api.csproj
|
||||
APP_PROJECT_NAMES=Api Org Blogs
|
||||
APP_PROJECTS=src/Yavsc.Org/Yavsc.Org.csproj src/Yavsc.Api/Yavsc.Api.csproj
|
||||
SLNDIR=..
|
||||
DESTDIR=/srv/www/yavsc/
|
||||
USER_AND_GROUP=www-data:www-data
|
||||
CONFIGURATION=Release
|
||||
DOTNET_FRAMEWORK=net10.0
|
||||
|
||||
generated/%.service: template.service %.env .env
|
||||
envsubst < template.service > $@
|
||||
include $(SLNDIR)/.env
|
||||
|
||||
copy-service-Org: $(DESTDIR)/etc/systemd/system/Org.service
|
||||
generated/:
|
||||
@mkdir -p $@
|
||||
|
||||
$(DESTDIR)/etc/systemd/system/%.service: generated/%.service
|
||||
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
|
||||
sudo cp $^ $@
|
||||
sudo chown root:root $@
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
|
||||
build_publish:
|
||||
for f in $(APP_PROJECTS); do \
|
||||
ASPNETCORE_ENV=$(CONFIGURATION) dotnet publish $(SLNDIR)/$$f ; \
|
||||
done
|
||||
|
||||
rmep: build_publish
|
||||
sudo systemctl stop yavsc-api
|
||||
sudo systemctl stop yavsc-org
|
||||
for f in Api Org; do
|
||||
pushd $(SLNDIR)/src/$$prj
|
||||
SOURCE_DIR=bin/$(CONFIGURATION)/$(DOTNET_FRAMEWORK)/publish/
|
||||
sudo cp -a $(SOURCE_DIR)/* $(DESTDIR)
|
||||
sudo chown -R $(USER_AND_GROUP) $(DESTDIR)
|
||||
popd
|
||||
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} ; \
|
||||
done
|
||||
sudo sync
|
||||
sudo systemctl start yavsc-org
|
||||
sudo systemctl start yavsc-api
|
||||
|
||||
showConfig:
|
||||
@echo CONFIGURATION: $(CONFIGURATION)
|
||||
@echo DESTDIR: $(DESTDIR)
|
||||
|
||||
reinstall: copy-service-Org copy-service-Api rmep
|
||||
clean:
|
||||
rm -rf generated
|
||||
|
||||
.PHONY: build_publish mep showConfig copy-service-Api copy-service-Org copy-service-Blogs reinstall clean
|
||||
|
|
|
|||
|
|
@ -12,16 +12,18 @@ Type=simple
|
|||
User=www-data
|
||||
Group=www-data
|
||||
WorkingDirectory=$DESTDIR
|
||||
ExecStart=$DESTDIR/$APP_NAME
|
||||
ExecStart=$DESTDIR/Yavsc.$APP_NAME
|
||||
Restart=always
|
||||
Environment="HOME=$DESTDIR"
|
||||
Environment="ASPNETCORE_ENVIRONMENT=Production"
|
||||
Environment="ASPNETCORE_ConnectionStrings__YavscConnection=Server=$YAVSC_CONNECTION_HOST;Port=$YAVSC_CONNECTION_PORT;Database=$YAVSC_CONNECTION_DATABASE;Username=$YAVSC_CONNECTION_USERNAME;Password=$YAVSC_CONNECTION_PASSWORD;"
|
||||
Environment="ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY"
|
||||
Environment="ANTHROPIC_MAX_TOKENS=$ANTHROPIC_MAX_TOKENS"
|
||||
Environment="ASPNETCORE_ConnectionStrings__YavscConnection=Server=$POSTGRES_HOST;Port=$POSTGRES_PORT;Database=$POSTGRES_DB;Username=$POSTGRES_USER;Password=$POSTGRES_PASSWORD;"
|
||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
StandardOutput=syslog
|
||||
StandardError=syslog
|
||||
SyslogIdentifier=$APP_NAME
|
||||
SyslogIdentifier=$APP_SYSLOG_ID
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue