From e31b69931ae4dcdffffb79b7d9978542dc0e8345 Mon Sep 17 00:00:00 2001 From: schmelczerandras Date: Thu, 24 Sep 2020 21:19:23 +0200 Subject: [PATCH] Change hosting to firebase --- .firebaserc | 5 ++++ .github/workflows/main.yaml | 52 ++++++++--------------------------- Dockerfile | 23 ---------------- desktop.ini | 6 ---- docker-compose.yml | 30 -------------------- firebase.json | 24 ++++++++++++++++ nginx-config/nginx.conf | 55 ------------------------------------- package.json | 6 ++-- 8 files changed, 44 insertions(+), 157 deletions(-) create mode 100644 .firebaserc delete mode 100644 Dockerfile delete mode 100644 desktop.ini delete mode 100644 docker-compose.yml create mode 100644 firebase.json delete mode 100644 nginx-config/nginx.conf diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..d585736 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "schmelczer-dev" + } +} diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 1ce43ad..a3260a0 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -1,49 +1,21 @@ -name: Deploy everything +name: Deploy site on: push: branches: - main -env: - CONTAINER_REGISTRY: schmelczera - DOMAIN: "161.35.71.163" - jobs: - build: + firebase-deploy: runs-on: ubuntu-latest steps: - name: Checkout current branch with lfs - uses: actions/checkout@main + uses: actions/checkout@master + - name: Build site + run: | + npm install + npm run build + - name: Deploy html + uses: w9jds/firebase-action@master with: - lfs: true - - - name: Setup auth tokens - run: | - docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push job - run: | - docker build . -t $CONTAINER_REGISTRY/photos - docker push $CONTAINER_REGISTRY/photos - - push: - runs-on: ubuntu-latest - needs: - - build - steps: - - name: Checkout current branch with lfs - uses: actions/checkout@main - with: - lfs: true - - - name: Setup auth tokens - run: | - # SSH key - mkdir ~/.ssh - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 - chmod 400 ~/.ssh/id_ed25519 - ssh -o StrictHostKeyChecking=no root@$DOMAIN uptime - - - name: Stack deploy - run: | - DOCKER_HOST=ssh://root@$DOMAIN docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASSWORD }} - DOCKER_HOST=ssh://root@$DOMAIN docker stack deploy photos -c docker-compose.yml --with-registry-auth + args: deploy --only hosting:photo-schmelczer-dev --project schmelczer-dev + env: + FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 84904e2..0000000 --- a/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM schmelczera/error-pages as build-error-pages -RUN python build.py 403 404 50x - -FROM node:latest as build-webpage -WORKDIR /home/node - -COPY src src -COPY package.json custom.d.ts tsconfig.json webpack.config.js ./ - -RUN npm install -RUN npm run build - -FROM nginx:alpine - -WORKDIR /usr/share/nginx/html - -RUN rm -rf * -COPY --from=build-webpage /home/node/dist . -COPY --from=build-error-pages /home/python/built errors -RUN find . -type f | xargs gzip -k9 &&\ - chmod -R 555 . - -COPY nginx-config /etc/nginx/ diff --git a/desktop.ini b/desktop.ini deleted file mode 100644 index 0fda442..0000000 --- a/desktop.ini +++ /dev/null @@ -1,6 +0,0 @@ -[.ShellClassInfo] -IconResource=D:\Projects\icons\camera.ico,0 -[ViewState] -Mode= -Vid= -FolderType=Generic diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index d986583..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: "3.8" - -services: - photos: - init: true - image: schmelczera/photos - networks: - - network - deploy: - replicas: 2 - resources: - limits: - cpus: "0.5" - memory: 32M - reservations: - cpus: "0.2" - memory: 32M - placement: - max_replicas_per_node: 1 - update_config: - parallelism: 1 - failure_action: rollback - delay: 10s - monitor: 10s - restart_policy: - condition: on-failure - window: 30s - -networks: - network: diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..45fdab2 --- /dev/null +++ b/firebase.json @@ -0,0 +1,24 @@ +{ + "hosting": { + "site": "photo-schmelczer-dev", + "public": "dist", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], + "rewrites": [ + { + "source": "**", + "destination": "/index.html" + } + ], + "headers": [ + { + "source": "**/*.@(jpg|jpeg|gif|png|webm|mp4)", + "headers": [ + { + "key": "Cache-Control", + "value": "max-age=31536000" + } + ] + } + ] + } +} diff --git a/nginx-config/nginx.conf b/nginx-config/nginx.conf deleted file mode 100644 index 379f3b5..0000000 --- a/nginx-config/nginx.conf +++ /dev/null @@ -1,55 +0,0 @@ -user nginx; -worker_processes auto; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 1024; -} - -http { - server_tokens off; - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - sendfile_max_chunk 1m; - tcp_nopush on; - - keepalive_timeout 65; - - gzip on; - gzip_static on; - gzip_vary on; - gzip_min_length 10240; - gzip_proxied any; - gzip_disable "MSIE [1-6]\.(?!.*SV1)"; - - server { - listen 80; - server_name localhost; - - root /usr/share/nginx/html; - index index.html; - - location ~* \.(jpg|jpeg|png|ico)$ { - expires 30d; - } - - error_page 403 /403.html; - error_page 404 /404.html; - error_page 500 501 502 503 504 /50x.html; - - location ~ ^/(403|404|50x).html$ { - root /usr/share/nginx/html/errors; - internal; - } - } -} diff --git a/package.json b/package.json index 0823f1d..75e960e 100644 --- a/package.json +++ b/package.json @@ -41,12 +41,12 @@ "html-webpack-plugin": "^3.2.0", "image-webpack-loader": "^6.0.0", "mini-css-extract-plugin": "^0.9.0", - "optimize-css-assets-webpack-plugin": "^5.0.3", + "optimize-css-assets-webpack-plugin": "^5.0.4", "postcss-loader": "^3.0.0", "prettier": "^1.19.1", "resolve-url-loader": "^3.1.1", "responsive-loader": "^1.2.0", - "sass": "^1.26.10", + "sass": "^1.26.11", "sass-loader": "^8.0.2", "sharp": "^0.23.4", "style-loader": "^1.2.1", @@ -54,7 +54,7 @@ "terser-webpack-plugin": "^2.3.8", "ts-loader": "^6.2.2", "typescript": "^3.9.7", - "webpack": "^4.44.1", + "webpack": "^4.44.2", "webpack-cli": "^3.3.12", "webpack-dev-server": "^3.11.0" }