Compare commits
3 Commits
renovate/d
...
update-Nod
| Author | SHA1 | Date | |
|---|---|---|---|
| 4521ca2090 | |||
| 74e49ddde7 | |||
| f42e10156e |
4
.github/dependabot.yml
vendored
4
.github/dependabot.yml
vendored
@@ -4,3 +4,7 @@ updates:
|
|||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "daily"
|
interval: "daily"
|
||||||
|
- package-ecosystem: 'npm'
|
||||||
|
directory: '/'
|
||||||
|
schedule:
|
||||||
|
interval: 'daily'
|
||||||
66
.github/workflows/actions.yml
vendored
66
.github/workflows/actions.yml
vendored
@@ -3,81 +3,73 @@ name: Docker Build
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main # Set a branch to deploy
|
- main
|
||||||
|
|
||||||
env:
|
env:
|
||||||
IMAGE_REGISTRY: ghcr.io
|
IMAGE_REGISTRY: ghcr.io
|
||||||
|
TOKEN_USER: HotaruBlaze
|
||||||
IMAGE_OWNER: fluttershub
|
IMAGE_OWNER: fluttershub
|
||||||
IMAGE_NAME: homepage
|
IMAGE_NAME: homepage
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
Build_x86:
|
BuildImage:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
CPU_ARCH:
|
||||||
|
- arm64
|
||||||
|
- x86_64
|
||||||
# If running with act, Uncomment below
|
# If running with act, Uncomment below
|
||||||
# container: phaze9/action-runner
|
# container: phaze9/action-runner
|
||||||
env:
|
env:
|
||||||
DOCKER_CONFIG: $HOME/.docker
|
DOCKER_CONFIG: $HOME/.docker
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
- name: Available platforms
|
||||||
|
run: echo ${{ steps.buildx.outputs.platforms }}
|
||||||
|
|
||||||
- name: Login to ghcr.io
|
- name: Login to ghcr.io
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v1
|
||||||
with:
|
with:
|
||||||
registry: ${{ env.IMAGE_REGISTRY }}
|
registry: ${{ env.IMAGE_REGISTRY }}
|
||||||
username: ${{ env.IMAGE_OWNER }}
|
username: ${{ env.TOKEN_USER }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.TOKEN }}
|
||||||
|
|
||||||
- name: Build Docker Image
|
- name: Build and push - x64
|
||||||
id: docker_build_x64
|
id: docker_build_x64
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v2
|
||||||
|
if: ${{ matrix.CPU_ARCH == 'x86_64'}}
|
||||||
with:
|
with:
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
labels: org.opencontainers.image.source https://github.com/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}
|
labels: org.opencontainers.image.source https://github.com/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}
|
||||||
tags: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:x64-latest
|
tags: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:x64-latest
|
||||||
|
|
||||||
Build_ARM64:
|
- name: Build and push - arm64
|
||||||
runs-on: [self-hosted, linux, ARM64]
|
|
||||||
# If running with act, Uncomment below
|
|
||||||
# container: phaze9/action-runner
|
|
||||||
env:
|
|
||||||
DOCKER_CONFIG: $HOME/.docker
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
id: buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Login to ghcr.io
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ${{ env.IMAGE_REGISTRY }}
|
|
||||||
username: ${{ env.IMAGE_OWNER }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build Docker Image
|
|
||||||
id: docker_build_arm64
|
id: docker_build_arm64
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v2
|
||||||
|
if: ${{ matrix.CPU_ARCH == 'arm64'}}
|
||||||
with:
|
with:
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm64
|
platforms: linux/arm64
|
||||||
labels: org.opencontainers.image.source https://github.com/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}
|
labels: org.opencontainers.image.source https://github.com/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}
|
||||||
tags: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:arm64-latest
|
tags: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:arm-latest
|
||||||
|
|
||||||
|
|
||||||
Deploy:
|
Deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: Build_x86
|
needs: BuildImage
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v2
|
||||||
- name: Run Ansible playbook
|
- name: Run Ansible playbook
|
||||||
# uses: dawidd6/action-ansible-playbook@v2.5.0
|
# uses: dawidd6/action-ansible-playbook@v2.5.0
|
||||||
uses: dawidd6/action-ansible-playbook@9d50e1392c06ef7ad5a2e71eb8b97fc2642c7937
|
uses: dawidd6/action-ansible-playbook@671974ed60e946e11964cb0c26e69caaa4b1f559
|
||||||
with:
|
with:
|
||||||
playbook: playbook.yml
|
playbook: playbook.yml
|
||||||
directory: ./
|
directory: ./
|
||||||
|
|||||||
10
.github/workflows/snyk-container.yml
vendored
10
.github/workflows/snyk-container.yml
vendored
@@ -14,9 +14,13 @@
|
|||||||
name: Snyk Container
|
name: Snyk Container
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
pull_request:
|
pull_request:
|
||||||
# The branches below must be a subset of the branches above
|
# The branches below must be a subset of the branches above
|
||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
|
schedule:
|
||||||
|
- cron: '18 21 * * 3'
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
@@ -28,14 +32,14 @@ jobs:
|
|||||||
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v3
|
||||||
- name: Build a Docker image
|
- name: Build a Docker image
|
||||||
run: docker build -t ghcr.io/fluttershub/homepage:snyk .
|
run: docker build -t ghcr.io/fluttershub/homepage:snyk .
|
||||||
- name: Run Snyk to check Docker image for vulnerabilities
|
- name: Run Snyk to check Docker image for vulnerabilities
|
||||||
# Snyk can be used to break the build when it detects vulnerabilities.
|
# Snyk can be used to break the build when it detects vulnerabilities.
|
||||||
# In this case we want to upload the issues to GitHub Code Scanning
|
# In this case we want to upload the issues to GitHub Code Scanning
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
uses: snyk/actions/docker@master
|
uses: snyk/actions/docker@14818c4695ecc4045f33c9cee9e795a788711ca4
|
||||||
env:
|
env:
|
||||||
# In order to use the Snyk Action you will need to have a Snyk API token.
|
# In order to use the Snyk Action you will need to have a Snyk API token.
|
||||||
# More details in https://github.com/snyk/actions#getting-your-snyk-token
|
# More details in https://github.com/snyk/actions#getting-your-snyk-token
|
||||||
@@ -45,6 +49,6 @@ jobs:
|
|||||||
image: ghcr.io/fluttershub/homepage:snyk
|
image: ghcr.io/fluttershub/homepage:snyk
|
||||||
args: --file=Dockerfile
|
args: --file=Dockerfile
|
||||||
- name: Upload result to GitHub Code Scanning
|
- name: Upload result to GitHub Code Scanning
|
||||||
uses: github/codeql-action/upload-sarif@v3
|
uses: github/codeql-action/upload-sarif@v2
|
||||||
with:
|
with:
|
||||||
sarif_file: snyk.sarif
|
sarif_file: snyk.sarif
|
||||||
|
|||||||
15
Dockerfile
15
Dockerfile
@@ -1,23 +1,20 @@
|
|||||||
FROM node:18.20.7 AS base
|
FROM node:18-alpine AS base
|
||||||
LABEL version="4.1.0"
|
LABEL version="4.1.0"
|
||||||
LABEL description=""
|
LABEL description=""
|
||||||
|
|
||||||
RUN apt-get update && apt-get upgrade -y \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
COPY ["package.json", "./"]
|
COPY ["package.json", "./"]
|
||||||
COPY ["yarn.lock", "./"]
|
COPY ["yarn.lock", "./"]
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
RUN yarn install
|
RUN apk add --no-cache --virtual .gyp python3 make g++ \
|
||||||
|
&& yarn install \
|
||||||
|
&& apk del .gyp
|
||||||
|
|
||||||
COPY ["src/", "./src"]
|
COPY ["src/", "./src"]
|
||||||
RUN npm run Prod
|
RUN npm run Prod
|
||||||
|
|
||||||
FROM nginx:1.27.4-alpine as Web
|
FROM nginx:1.21.6-alpine as Web
|
||||||
|
|
||||||
RUN apk --update --no-cache upgrade
|
|
||||||
|
|
||||||
LABEL maintainer="Phoenix (https://github.com/HotaruBlaze)"
|
LABEL maintainer="Phoenix (https://github.com/HotaruBlaze)"
|
||||||
COPY docker/nginx.conf /etc/nginx/nginx.conf
|
COPY docker/nginx.conf /etc/nginx/nginx.conf
|
||||||
COPY docker/web.conf /etc/nginx/conf.d/web.conf
|
COPY docker/web.conf /etc/nginx/conf.d/web.conf
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
version: "3"
|
version: "3"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
fluttershub-homepage:
|
fluttershub.com:
|
||||||
image: ghcr.io/fluttershub/homepage:x64-latest
|
image: ghcr.io/fluttershub/homepage:x64-latest
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
4125
package-lock.json
generated
4125
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
@@ -7,7 +7,7 @@
|
|||||||
"author": "HotaruBlaze",
|
"author": "HotaruBlaze",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git@github.com:Fluttershub/Homepage.git"
|
"url": "git@github.com:github/Fluttershub.git"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"preinit": "npx npm-force-resolutions",
|
"preinit": "npx npm-force-resolutions",
|
||||||
@@ -17,12 +17,13 @@
|
|||||||
"Prod": "npm run Cleanup && npm run Init && parcel build src/index.pug --dist-dir build"
|
"Prod": "npm run Cleanup && npm run Init && parcel build src/index.pug --dist-dir build"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@parcel/transformer-pug": "2.14.4",
|
"parcel": "^2.5.0"
|
||||||
"@parcel/transformer-sass": "2.14.4",
|
},
|
||||||
"parcel": "^2.14.4"
|
"engines": {
|
||||||
|
"node": "^18.*"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"node-forge": "1.3.1"
|
"node-forge": "0.10.0"
|
||||||
},
|
},
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
mode: '0755'
|
mode: '0755'
|
||||||
loop:
|
loop:
|
||||||
- docker-compose.yml
|
- docker-compose.yml
|
||||||
|
register: compose
|
||||||
|
|
||||||
- name: deploy Docker Compose stack if updated
|
- name: deploy Docker Compose stack if updated
|
||||||
community.docker.docker_compose:
|
community.docker.docker_compose:
|
||||||
@@ -25,3 +26,4 @@
|
|||||||
pull: true
|
pull: true
|
||||||
files:
|
files:
|
||||||
- docker-compose.yml
|
- docker-compose.yml
|
||||||
|
when: compose.changed
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
||||||
"extends": [
|
|
||||||
"config:recommended"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 93 KiB |
@@ -14,7 +14,7 @@ html(lang='en')
|
|||||||
.container
|
.container
|
||||||
.pod
|
.pod
|
||||||
.glow
|
.glow
|
||||||
img#profile_pic(src='assets/profile_pic.png', alt='')
|
img#profile_pic(src='https://img.fluttershub.com/VjpiMs7xp60yEcAH.png', alt='')
|
||||||
h1.welcome_text.text-flicker.text-flicker-1 Phoenix/Hotaru
|
h1.welcome_text.text-flicker.text-flicker-1 Phoenix/Hotaru
|
||||||
p.about_me.standard_text.text-box-glow
|
p.about_me.standard_text.text-box-glow
|
||||||
.pod
|
.pod
|
||||||
@@ -22,8 +22,6 @@ html(lang='en')
|
|||||||
a.standard_text.text-flicker-2(href="https://twitter.com/HotaruBlaze") Twitter
|
a.standard_text.text-flicker-2(href="https://twitter.com/HotaruBlaze") Twitter
|
||||||
a.standard_text.text-flicker-2(href="https://github.com/HotaruBlaze") Github
|
a.standard_text.text-flicker-2(href="https://github.com/HotaruBlaze") Github
|
||||||
a.standard_text.text-flicker-2(href="https://gitlab.com/HotaruBlaze") Gitlab
|
a.standard_text.text-flicker-2(href="https://gitlab.com/HotaruBlaze") Gitlab
|
||||||
a.standard_text.text-flicker-2(href="mailto:hotarublaze@gmail.com") Email
|
|
||||||
footer.standard_text.footer-slide
|
footer.standard_text.footer-slide
|
||||||
.creator
|
.creator
|
||||||
a.build_text(href="https://www.youtube.com/watch?v=5DWFZhAVI3s") Cookie?
|
a.build_text(href="https://img.fluttershub.com/EgOwhwrHyHWw.png") Cookie? 🍪
|
||||||
a.cookie(href="https://img.fluttershub.com/pdDK7pdVJZU3d9UI.jpg") 🍪
|
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ meta(property='og:url', content='https://fluttershub.com')
|
|||||||
meta(property='og:type', content='website')
|
meta(property='og:type', content='website')
|
||||||
meta(property='og:title', content='Phoenix\'s Personal Website')
|
meta(property='og:title', content='Phoenix\'s Personal Website')
|
||||||
meta(property='og:description', content='We got cookies and milk!')
|
meta(property='og:description', content='We got cookies and milk!')
|
||||||
meta(property='og:image', content='http://s3.fluttershub.com/fluttershub-com/public/profile_pic.png')
|
meta(property='og:image', content='http://storage.googleapis.com/api.fluttershub.com/images/public/profile_pic.jpg')
|
||||||
meta(property='og:image:secure_url', content='https://s3.fluttershub.com/fluttershub-com/public/profile_pic.png')
|
meta(property='og:image:secure_url', content='https://storage.googleapis.com/api.fluttershub.com/images/public/profile_pic.jpg')
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
@use "animations/bounce.scss";
|
@import "animations/bounce.scss";
|
||||||
@use "animations/flicker.scss";
|
@import "animations/flicker.scss";
|
||||||
@use "animations/slide.scss";
|
@import "animations/slide.scss";
|
||||||
@@ -60,9 +60,6 @@ body,html, .container {
|
|||||||
-moz-user-select: text;
|
-moz-user-select: text;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
.cookie {
|
|
||||||
text-decoration: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.no_hightnight a:link, a{
|
.no_hightnight a:link, a{
|
||||||
color: inherit;
|
color: inherit;
|
||||||
|
|||||||
@@ -1,11 +1,23 @@
|
|||||||
// @use "./bounce.scss";
|
// @import "./bounce.scss";
|
||||||
|
|
||||||
// Keyframes must be declared at the top level
|
#profile_pic {
|
||||||
@keyframes border-pulsate {
|
width: 256px;
|
||||||
0% {
|
height: 256px;
|
||||||
box-shadow: none;
|
/* Safari 3-4, iOS 1-3.2, Android 1.6- */
|
||||||
|
-webkit-border-radius: 50%;
|
||||||
|
|
||||||
|
/* Firefox 1-3.6 */
|
||||||
|
-moz-border-radius: 50%;
|
||||||
|
|
||||||
|
/* Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4, Android 2.1+ */
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.glow img{
|
||||||
|
@keyframes border-pulsate {
|
||||||
|
0%{
|
||||||
|
box-shadow:none;
|
||||||
}
|
}
|
||||||
60% {
|
60%{
|
||||||
box-shadow:
|
box-shadow:
|
||||||
inset 0 0 50px #fff,
|
inset 0 0 50px #fff,
|
||||||
inset 20px 0 80px #f5f,
|
inset 20px 0 80px #f5f,
|
||||||
@@ -16,25 +28,15 @@
|
|||||||
-10px 0 80px #f0f,
|
-10px 0 80px #f0f,
|
||||||
10px 0 80px #0ff;
|
10px 0 80px #0ff;
|
||||||
}
|
}
|
||||||
100% {
|
100%{
|
||||||
box-shadow: none;
|
box-shadow:none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// -webkit-animation: bounce-in-fwd 1.1s cubic-bezier(0.645, 0.045, 0.355, 1.000) both;
|
||||||
#profile_pic {
|
// animation: bounce-in-fwd 1.1s cubic-bezier(0.645, 0.045, 0.355, 1.000) both;
|
||||||
width: 256px;
|
|
||||||
height: 256px;
|
|
||||||
|
|
||||||
/* Safari 3-4, iOS 1-3.2, Android 1.6- */
|
|
||||||
-webkit-border-radius: 50%;
|
|
||||||
|
|
||||||
/* Firefox 1-3.6 */
|
|
||||||
-moz-border-radius: 50%;
|
|
||||||
|
|
||||||
/* Modern browsers */
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.glow img {
|
|
||||||
animation: bounce-in 800ms cubic-bezier(0.645, 0.045, 0.355, 1.000) both, border-pulsate 10s infinite;
|
animation: bounce-in 800ms cubic-bezier(0.645, 0.045, 0.355, 1.000) both, border-pulsate 10s infinite;
|
||||||
|
/* transition:all 4s ease-out;
|
||||||
|
/*animation-delay: 0s;
|
||||||
|
animation-play-state: running;
|
||||||
|
// animation-fill-mode: backwards; */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
@use "components/common.scss";
|
@import "components/common.scss";
|
||||||
// @use "components/animation.scss";
|
// @import "components/animation.scss";
|
||||||
@use "components/img.scss";
|
@import "components/img.scss";
|
||||||
@use "components/footer.scss";
|
@import "components/footer.scss";
|
||||||
@use "components/animations.scss";
|
@import "components/animations.scss";
|
||||||
// @use "components/slide.scss";
|
// @import "components/slide.scss";
|
||||||
// @use "components/links.scss";
|
// @import "components/links.scss";
|
||||||
Reference in New Issue
Block a user