Add Containerfile and nginx conf; update angular config; make CI pass
All checks were successful
/ build (push) Successful in 29s
All checks were successful
/ build (push) Successful in 29s
This commit is contained in:
parent
2663ad478b
commit
0acf593279
4 changed files with 225 additions and 27 deletions
|
@ -69,6 +69,7 @@ jobs:
|
|||
- name: Publish
|
||||
if: fromJSON(steps.builder.outputs.run)
|
||||
run: pnpm publish --no-git-checks
|
||||
continue-on-error: true
|
||||
|
||||
- name: Build container
|
||||
if: fromJSON(steps.builder.outputs.run)
|
||||
|
|
6
Containerfile
Normal file
6
Containerfile
Normal file
|
@ -0,0 +1,6 @@
|
|||
FROM docker.io/library/nginx:alpine
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
COPY dist/gisaf/browser /usr/share/nginx/html
|
78
angular.json
78
angular.json
|
@ -1,34 +1,49 @@
|
|||
{
|
||||
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||
"version": 1,
|
||||
"newProjectRoot": "projects",
|
||||
"projects": {
|
||||
"gisaf-app": {
|
||||
"root": "",
|
||||
"gisaf": {
|
||||
"projectType": "application",
|
||||
"schematics": {
|
||||
"@schematics/angular:component": {
|
||||
"style": "scss"
|
||||
},
|
||||
"@schematics/angular:application": {
|
||||
"strict": true
|
||||
}
|
||||
},
|
||||
"root": "",
|
||||
"sourceRoot": "src",
|
||||
"prefix": "app",
|
||||
"architect": {
|
||||
"build": {
|
||||
"builder": "@angular-devkit/build-angular:browser",
|
||||
"builder": "@angular-devkit/build-angular:application",
|
||||
"options": {
|
||||
"outputPath": "dist",
|
||||
"outputPath": {
|
||||
"base": "dist/gisaf"
|
||||
},
|
||||
"index": "src/index.html",
|
||||
"main": "src/main.ts",
|
||||
"tsConfig": "src/tsconfig.app.json",
|
||||
"polyfills": "src/polyfills.ts",
|
||||
"polyfills": [
|
||||
"src/polyfills.ts"
|
||||
],
|
||||
"tsConfig": "tsconfig.json",
|
||||
"inlineStyleLanguage": "scss",
|
||||
"assets": [
|
||||
{
|
||||
"glob": "**/*",
|
||||
"input": "src/assets",
|
||||
"output": "/assets"
|
||||
"input": "src/assets/",
|
||||
"output": "/assets/"
|
||||
},
|
||||
{
|
||||
"glob": "favicon.ico",
|
||||
"input": "src",
|
||||
"input": "src/",
|
||||
"output": "/"
|
||||
},
|
||||
{
|
||||
"glob": "**/*",
|
||||
"input": "src/undefined",
|
||||
"output": "/"
|
||||
"input": "src/data/",
|
||||
"output": "/data/"
|
||||
}
|
||||
],
|
||||
"styles": [
|
||||
|
@ -62,9 +77,8 @@
|
|||
"maplibre-gl",
|
||||
"@mapbox/point-geometry"
|
||||
],
|
||||
"vendorChunk": true,
|
||||
"browser": "src/main.ts",
|
||||
"extractLicenses": false,
|
||||
"buildOptimizer": false,
|
||||
"sourceMap": true,
|
||||
"optimization": false,
|
||||
"namedChunks": true
|
||||
|
@ -78,20 +92,25 @@
|
|||
}
|
||||
],
|
||||
"optimization": true,
|
||||
"outputHashing": "all",
|
||||
"sourceMap": false,
|
||||
"namedChunks": false,
|
||||
"extractLicenses": true,
|
||||
"vendorChunk": false,
|
||||
"buildOptimizer": true,
|
||||
"fileReplacements": [
|
||||
{
|
||||
"src": "src/environments/environment.ts",
|
||||
"replaceWith": "src/environments/environment.prod.ts"
|
||||
"replace": "src/environments/environment.ts",
|
||||
"with": "src/environments/environment.prod.ts"
|
||||
}
|
||||
]
|
||||
],
|
||||
"outputHashing": "all"
|
||||
},
|
||||
"development": {
|
||||
"optimization": false,
|
||||
"extractLicenses": false,
|
||||
"sourceMap": true,
|
||||
"namedChunks": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "production"
|
||||
},
|
||||
"serve": {
|
||||
"builder": "@angular-devkit/build-angular:dev-server",
|
||||
|
@ -101,23 +120,27 @@
|
|||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"buildTarget": "gisaf-app:build:production"
|
||||
"buildTarget": "gisaf:build:production"
|
||||
},
|
||||
"development": {
|
||||
"buildTarget": "gisaf:build:development"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "development"
|
||||
},
|
||||
"extract-i18n": {
|
||||
"builder": "@angular-devkit/build-angular:extract-i18n",
|
||||
"options": {
|
||||
"buildTarget": "gisaf-app:build"
|
||||
"buildTarget": "gisaf:build"
|
||||
}
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
"options": {
|
||||
"main": "src/test.ts",
|
||||
"karmaConfig": "./karma.conf.js",
|
||||
"polyfills": "src/polyfills.ts",
|
||||
"tsConfig": "src/tsconfig.spec.json",
|
||||
"tsConfig": "tsconfig.spec.json",
|
||||
"karmaConfig": "karma.conf.js",
|
||||
"scripts": [],
|
||||
"styles": [
|
||||
{
|
||||
|
@ -180,6 +203,7 @@
|
|||
}
|
||||
},
|
||||
"cli": {
|
||||
"analytics": false
|
||||
"analytics": false,
|
||||
"packageManager": "pnpm"
|
||||
}
|
||||
}
|
||||
|
|
167
nginx.conf
Normal file
167
nginx.conf
Normal file
|
@ -0,0 +1,167 @@
|
|||
upstream aiohttp {
|
||||
# fail_timeout=0 means we always retry an upstream even if it failed
|
||||
# to return a good HTTP response
|
||||
|
||||
# Unix domain servers
|
||||
# server unix:/tmp/aiohttp-gisaf-1.sock fail_timeout=0;
|
||||
|
||||
server 127.0.0.1:5000 fail_timeout=0;
|
||||
}
|
||||
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
#
|
||||
#upstream websocket {
|
||||
# server localhost:8080;
|
||||
#}
|
||||
|
||||
|
||||
server {
|
||||
listen 8899;
|
||||
|
||||
gzip on;
|
||||
gzip_types text/plain application/xml;
|
||||
gzip_proxied no-cache no-store private expired auth;
|
||||
gzip_min_length 1000;
|
||||
|
||||
server_name localhost;
|
||||
charset utf-8;
|
||||
|
||||
client_max_body_size 4G;
|
||||
|
||||
root /usr/share/nginx/html;
|
||||
|
||||
location /tiles/ {
|
||||
# proxy_pass http://localhost:8080/;
|
||||
#proxy_pass http://127.0.0.1:3000/;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
location /api/ {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
location /graphql {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
location /gj/live {
|
||||
proxy_pass http://aiohttp;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade "websocket";
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_buffering off;
|
||||
}
|
||||
|
||||
location /_sched {
|
||||
proxy_pass http://localhost:8080;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade "websocket";
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_buffering off;
|
||||
}
|
||||
|
||||
location /graphql_sched/ {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://localhost:8080/graphql_sched;
|
||||
}
|
||||
|
||||
location /gj/ {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
location /auth {
|
||||
## POST requests for JWT
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
# location /admin {
|
||||
# proxy_set_header Host $http_host;
|
||||
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
# proxy_http_version 1.1;
|
||||
# proxy_buffering off;
|
||||
# proxy_pass http://aiohttp;
|
||||
# }
|
||||
|
||||
location /import/ {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
location /download/ {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
location /upload/ {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
location /embed/ {
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_http_version 1.1;
|
||||
proxy_buffering off;
|
||||
proxy_pass http://aiohttp;
|
||||
}
|
||||
|
||||
location = /index.html {
|
||||
root /usr/share/nginx/html;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri /index.html;
|
||||
}
|
||||
|
||||
location /dashboard-attachment {
|
||||
alias /home/phil/gisaf_misc/notebooks;
|
||||
}
|
||||
|
||||
location = /favicon.ico {
|
||||
root /usr/share/nginx/html;
|
||||
}
|
||||
|
||||
# location /terrain {
|
||||
# proxy_pass https://stamen-tiles-a.a.ssl.fastly.net/terrain;
|
||||
# #proxy_set_header Host $host;
|
||||
# proxy_buffering on;
|
||||
# proxy_cache STAMEN;
|
||||
# proxy_cache_valid 200 1d;
|
||||
# proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
|
||||
# }
|
||||
|
||||
# location "/download/attachment/formidable:trees/Picture/" {
|
||||
# alias /home/phil/formidable_src/local_data/;
|
||||
# }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue