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 927a0e4..c09451d 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/timeline - docker push $CONTAINER_REGISTRY/timeline - - 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 timeline -c docker-compose.yml --with-registry-auth + args: deploy --only hosting:schmelczer-dev --project schmelczer-dev + env: + FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index cb8d052..0000000 --- a/Dockerfile +++ /dev/null @@ -1,25 +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 - -HEALTHCHECK --interval=1m --timeout=10s CMD curl --fail http://localhost/ || exit 1 - -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/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index db57a85..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3.8' - -services: - timeline: - init: true - image: schmelczera/timeline - networks: - - network - deploy: - replicas: 3 - resources: - limits: - # no cpu limit - memory: 16M - reservations: - cpus: '0.2' - memory: 16M - 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..da6e7a6 --- /dev/null +++ b/firebase.json @@ -0,0 +1,20 @@ +{ + "hosting": { + "public": "dist", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], + "site": "schmelczer-dev", + "rewrites": [ + { + "source": "**", + "destination": "/index.html" + } + ], + "redirects": [ + { + "source": "/fizika", + "destination": "https://fizika.schmelczer.dev", + "type": 301 + } + ] + } +} diff --git a/nginx-config/nginx.conf b/nginx-config/nginx.conf deleted file mode 100644 index 902ca30..0000000 --- a/nginx-config/nginx.conf +++ /dev/null @@ -1,53 +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; - - access_log off; - - 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; - } - } -}