Modernise & deploy #1
1
.dockerignore
Normal file
|
|
@ -0,0 +1 @@
|
|||
**/node_modules
|
||||
25
Dockerfile
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
FROM schmelczera/error-pages as build-error-pages
|
||||
RUN python build.py 401 403 404 502 50x
|
||||
|
||||
|
||||
FROM node:latest as build-webpage
|
||||
WORKDIR /home/node
|
||||
|
||||
COPY frontend .
|
||||
|
||||
RUN npm install
|
||||
RUN npm run build
|
||||
|
||||
|
||||
FROM nginx:alpine
|
||||
WORKDIR /var/www
|
||||
RUN rm -rf *
|
||||
|
||||
COPY --from=build-error-pages /home/python/built errors
|
||||
COPY --from=build-webpage /home/node/dist/frontend .
|
||||
RUN find . -type f | xargs gzip -k9 &&\
|
||||
chmod -R 555 .
|
||||
|
||||
VOLUME ["/var/www/sockets"]
|
||||
|
||||
COPY ingress/nginx-config /etc/nginx/
|
||||
83
docker-compose.yml
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
version: "3.8"
|
||||
|
||||
services:
|
||||
towers-ingress:
|
||||
init: true
|
||||
depends_on:
|
||||
- store
|
||||
image: schmelczera/towers-ingress
|
||||
networks:
|
||||
- network
|
||||
deploy:
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
cpus: "0.2"
|
||||
memory: 32M
|
||||
reservations:
|
||||
cpus: "0.1"
|
||||
memory: 16M
|
||||
placement:
|
||||
constraints:
|
||||
- "node.hostname == node-2"
|
||||
update_config:
|
||||
parallelism: 1
|
||||
failure_action: rollback
|
||||
delay: 10s
|
||||
monitor: 10s
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
window: 30s
|
||||
volumes:
|
||||
- sockets:/var/www/sockets
|
||||
|
||||
towers-store:
|
||||
init: true
|
||||
image: schmelczera/towers-store
|
||||
networks:
|
||||
- network
|
||||
deploy:
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
cpus: "0.2"
|
||||
memory: 64M
|
||||
reservations:
|
||||
cpus: "0.05"
|
||||
memory: 32M
|
||||
placement:
|
||||
constraints:
|
||||
- "node.hostname == node-2"
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
window: 30s
|
||||
volumes:
|
||||
- sockets:/home/backend/sockets
|
||||
|
||||
towers-db:
|
||||
init: true
|
||||
image: postgres:12.1-alpine
|
||||
networks:
|
||||
- network
|
||||
deploy:
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
cpus: "0.2"
|
||||
memory: 64M
|
||||
reservations:
|
||||
cpus: "0.05"
|
||||
memory: 32M
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
window: 30s
|
||||
volumes:
|
||||
- /shared/towers/db:/var/lib/postgresql/data
|
||||
|
||||
networks:
|
||||
network:
|
||||
driver: overlay
|
||||
|
||||
volumes:
|
||||
sockets:
|
||||
driver: local
|
||||
0
.editorconfig → frontend/.editorconfig
Executable file → Normal file
0
.gitignore → frontend/.gitignore
vendored
Executable file → Normal file
0
.prettierrc → frontend/.prettierrc
Executable file → Normal file
0
README.md → frontend/README.md
Executable file → Normal file
0
angular.json → frontend/angular.json
Executable file → Normal file
0
firebase.json → frontend/firebase.json
Executable file → Normal file
0
package-lock.json → frontend/package-lock.json
generated
Executable file → Normal file
0
package.json → frontend/package.json
Executable file → Normal file
0
src/app/app-routing.module.ts → frontend/src/app/app-routing.module.ts
Executable file → Normal file
0
src/app/app.component.html → frontend/src/app/app.component.html
Executable file → Normal file
0
src/app/app.component.scss → frontend/src/app/app.component.scss
Executable file → Normal file
0
src/app/app.component.ts → frontend/src/app/app.component.ts
Executable file → Normal file
0
src/app/app.module.ts → frontend/src/app/app.module.ts
Executable file → Normal file
0
src/app/components/modal/modal.component.html → frontend/src/app/components/modal/modal.component.html
Executable file → Normal file
0
src/app/components/modal/modal.component.scss → frontend/src/app/components/modal/modal.component.scss
Executable file → Normal file
0
src/app/components/modal/modal.component.ts → frontend/src/app/components/modal/modal.component.ts
Executable file → Normal file
0
src/app/components/modal/modals/blocks/blocks.component.ts → frontend/src/app/components/modal/modals/blocks/blocks.component.ts
Executable file → Normal file
0
src/app/components/pages/page/page.component.html → frontend/src/app/components/pages/page/page.component.html
Executable file → Normal file
0
src/app/components/pages/page/page.component.scss → frontend/src/app/components/pages/page/page.component.scss
Executable file → Normal file
0
src/app/components/pages/page/page.component.ts → frontend/src/app/components/pages/page/page.component.ts
Executable file → Normal file
0
src/app/components/pages/page/tower/tower.component.html → frontend/src/app/components/pages/page/tower/tower.component.html
Executable file → Normal file
0
src/app/components/pages/page/tower/tower.component.scss → frontend/src/app/components/pages/page/tower/tower.component.scss
Executable file → Normal file
0
src/app/components/pages/page/tower/tower.component.ts → frontend/src/app/components/pages/page/tower/tower.component.ts
Executable file → Normal file
0
src/app/components/pages/pages.component.html → frontend/src/app/components/pages/pages.component.html
Executable file → Normal file
0
src/app/components/pages/pages.component.scss → frontend/src/app/components/pages/pages.component.scss
Executable file → Normal file
0
src/app/components/pages/pages.component.ts → frontend/src/app/components/pages/pages.component.ts
Executable file → Normal file
0
src/app/components/shared/toggle/toggle.component.html → frontend/src/app/components/shared/toggle/toggle.component.html
Executable file → Normal file
0
src/app/components/shared/toggle/toggle.component.scss → frontend/src/app/components/shared/toggle/toggle.component.scss
Executable file → Normal file
0
src/app/components/shared/toggle/toggle.component.ts → frontend/src/app/components/shared/toggle/toggle.component.ts
Executable file → Normal file
0
src/app/interfaces/color.ts → frontend/src/app/interfaces/color.ts
Executable file → Normal file
0
src/app/interfaces/persistance/block.ts → frontend/src/app/interfaces/persistance/block.ts
Executable file → Normal file
0
src/app/interfaces/persistance/data.ts → frontend/src/app/interfaces/persistance/data.ts
Executable file → Normal file
0
src/app/interfaces/persistance/page.ts → frontend/src/app/interfaces/persistance/page.ts
Executable file → Normal file
0
src/app/interfaces/persistance/tower.ts → frontend/src/app/interfaces/persistance/tower.ts
Executable file → Normal file
0
src/app/interfaces/persistance/unique.ts → frontend/src/app/interfaces/persistance/unique.ts
Executable file → Normal file
0
src/app/interfaces/range.ts → frontend/src/app/interfaces/range.ts
Executable file → Normal file
0
src/app/interfaces/serializable.ts → frontend/src/app/interfaces/serializable.ts
Executable file → Normal file
0
src/app/model/block.ts → frontend/src/app/model/block.ts
Executable file → Normal file
0
src/app/model/data.ts → frontend/src/app/model/data.ts
Executable file → Normal file
0
src/app/model/page.ts → frontend/src/app/model/page.ts
Executable file → Normal file
0
src/app/model/tower.ts → frontend/src/app/model/tower.ts
Executable file → Normal file
0
src/app/pipes/color.pipe.ts → frontend/src/app/pipes/color.pipe.ts
Executable file → Normal file
0
src/app/pipes/format-date.pipe.ts → frontend/src/app/pipes/format-date.pipe.ts
Executable file → Normal file
0
src/app/services/api.service.ts → frontend/src/app/services/api.service.ts
Executable file → Normal file
0
src/app/services/cancel.service.ts → frontend/src/app/services/cancel.service.ts
Executable file → Normal file
0
src/app/services/data.service.ts → frontend/src/app/services/data.service.ts
Executable file → Normal file
0
src/app/services/map-store.service.ts → frontend/src/app/services/map-store.service.ts
Executable file → Normal file
0
src/app/services/modal.service.ts → frontend/src/app/services/modal.service.ts
Executable file → Normal file
0
src/app/store/inner-node.ts → frontend/src/app/store/inner-node.ts
Executable file → Normal file
0
src/app/store/node.ts → frontend/src/app/store/node.ts
Executable file → Normal file
0
src/app/store/root.ts → frontend/src/app/store/root.ts
Executable file → Normal file
0
src/app/store/unique.ts → frontend/src/app/store/unique.ts
Executable file → Normal file
0
src/app/utils/color.ts → frontend/src/app/utils/color.ts
Executable file → Normal file
0
src/app/utils/hash.ts → frontend/src/app/utils/hash.ts
Executable file → Normal file
0
src/app/utils/range.ts → frontend/src/app/utils/range.ts
Executable file → Normal file
0
src/app/utils/top.ts → frontend/src/app/utils/top.ts
Executable file → Normal file
0
src/assets/.gitkeep → frontend/src/assets/.gitkeep
Executable file → Normal file
0
src/assets/arrow.svg → frontend/src/assets/arrow.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 746 B After Width: | Height: | Size: 746 B |
0
src/assets/pen.svg → frontend/src/assets/pen.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 737 B After Width: | Height: | Size: 737 B |
0
src/assets/plus-sign.svg → frontend/src/assets/plus-sign.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
0
src/assets/trash.svg → frontend/src/assets/trash.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 3 KiB |
0
src/assets/x-sign.svg → frontend/src/assets/x-sign.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 816 B After Width: | Height: | Size: 816 B |
0
src/browserslist → frontend/src/browserslist
Executable file → Normal file
0
src/environments/environment.prod.ts → frontend/src/environments/environment.prod.ts
Executable file → Normal file
0
src/environments/environment.ts → frontend/src/environments/environment.ts
Executable file → Normal file
0
src/favicon.ico → frontend/src/favicon.ico
Executable file → Normal file
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |