-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c975408
commit ceadf82
Showing
8 changed files
with
446 additions
and
327 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: Build and Push Docker Image | ||
|
||
on: | ||
push: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
docker: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: docker/setup-buildx-action@v3 | ||
- uses: docker/login-action@v3 | ||
with: | ||
username: ${{ vars.DOCKER_USER }} | ||
password: ${{ secrets.DOCKER_TOKEN }} | ||
|
||
- name: Lowercase the repo name | ||
run: echo "REPO_LC=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV} | ||
|
||
- name: Generate semantic version | ||
id: semver | ||
run: | | ||
# Get the run number from the environment | ||
RUN_NUMBER=${GITHUB_RUN_NUMBER} | ||
# Calculate major, minor, and patch based on the run number | ||
MAJOR=$((RUN_NUMBER / 100)) # Every 100 runs increases major | ||
MINOR=$(((RUN_NUMBER % 100) / 10)) # Every 10 runs increases minor | ||
PATCH=$((RUN_NUMBER % 10)) # Remaining runs increase patch | ||
# Format the version | ||
VERSION="$MAJOR.$MINOR.$PATCH" | ||
# Output the version for use in later steps and logging | ||
echo "VERSION=$VERSION" >> $GITHUB_ENV | ||
echo "version=$VERSION" >> $GITHUB_OUTPUT | ||
echo "Calculated version: $VERSION (from run #$RUN_NUMBER)" | ||
- uses: docker/build-push-action@v6 | ||
with: | ||
context: . | ||
push: true | ||
tags: | | ||
${{ env.REPO_LC }}:latest | ||
${{ env.REPO_LC }}:${{ env.VERSION }} | ||
${{ env.REPO_LC }}:${{ env.VERSION }}-${{ github.sha }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Use a specific version of the PHP Apache image for reproducibility | ||
FROM php:8.3.0-apache | ||
|
||
# Install necessary packages for PHP extensions and enable Apache modules | ||
RUN apt-get update && apt-get install -y \ | ||
libpq-dev \ | ||
&& docker-php-ext-install pdo_mysql \ | ||
&& a2enmod rewrite \ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# Set the working directory | ||
WORKDIR /var/www/html | ||
|
||
# Copy only the necessary files (excluding unnecessary ones) | ||
COPY . . | ||
|
||
# Set proper permissions for Apache to access the files | ||
RUN chown -R www-data:www-data /var/www/html | ||
|
||
# Expose the port the app runs on | ||
EXPOSE 80 | ||
|
||
# Use a non-privileged user for better security | ||
USER www-data | ||
|
||
# Start the Apache server | ||
CMD ["apache2-foreground"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,148 +1,145 @@ | ||
@media screen and (max-width: 999px) { | ||
/* Theme Styles */ | ||
[data-theme="dark"] { | ||
--color-bg: #000000; | ||
--color-fg: #ffffff; | ||
} | ||
|
||
[data-theme="light"] { | ||
filter: invert(100%); | ||
} | ||
|
||
[data-theme="light"] :not(img, input, footer) { | ||
filter: invert(100%); | ||
} | ||
|
||
[data-theme="light"] .img { | ||
-webkit-transform: rotate(180deg); | ||
-moz-transform: rotate(180deg); | ||
-ms-transform: rotate(180deg); | ||
-o-transform: rotate(180deg); | ||
transform: rotate(180deg); | ||
display: block; | ||
left: -3px; | ||
position: absolute; | ||
top: -3px; | ||
height: 35px; | ||
width: 35px; | ||
background: inherit; | ||
background-clip: text; | ||
-webkit-background-clip: text; | ||
color: transparent; | ||
filter: invert(1) grayscale(1); | ||
-webkit-filter: invert(1) grayscale(1); | ||
} | ||
|
||
|
||
/* Body Styles */ | ||
body { | ||
background-color: #000000; | ||
color: #ffffff; | ||
display: inline-block; | ||
min-height: 10px; | ||
place-items: left; | ||
font-family: Arial, Helvetica, sans-serif; | ||
user-select: none; | ||
-webkit-user-select: none; | ||
-webkit-user-drag: none; | ||
} | ||
|
||
button { | ||
color: transparent; | ||
background-color: transparent; | ||
width: 35px; | ||
height: 35px; | ||
} | ||
|
||
/* Image Styles */ | ||
.img { | ||
display: block; | ||
left: 23px; | ||
position: absolute; | ||
top: 23px; | ||
height: 35px; | ||
width: 35px; | ||
background: inherit; | ||
background-clip: text; | ||
-webkit-background-clip: text; | ||
color: transparent; | ||
filter: invert(1) grayscale(1); | ||
-webkit-filter: invert(1) grayscale(1); | ||
} | ||
|
||
/* Header Styles */ | ||
.header { | ||
text-align: left; | ||
} | ||
|
||
.header h1 { | ||
font-size: 20px; | ||
} | ||
|
||
.header a { | ||
color: deeppink; | ||
} | ||
|
||
/* Intro Styles */ | ||
.intro { | ||
padding-left: 15px; | ||
text-align: left; | ||
font-size: 15px; | ||
} | ||
|
||
/* Main Container Styles */ | ||
.main-void-container { | ||
display: inline-flex; | ||
align-items: flex-start; | ||
padding: 15px; | ||
align-content: center; | ||
max-width: 100%; | ||
max-height: 100%; | ||
|
||
} | ||
|
||
/* Main Section Styles */ | ||
.main { | ||
text-align: left; | ||
max-width: 100%; | ||
max-height: 100%; | ||
} | ||
|
||
|
||
/* Void Section Styles */ | ||
.void { | ||
padding-left: 15px; | ||
padding-right: 10%; | ||
max-width: 100%; | ||
} | ||
|
||
/* Paragraph Link Styles */ | ||
p a { | ||
text-decoration: none; | ||
color: magenta; | ||
} | ||
|
||
p a:hover { | ||
color: red; | ||
} | ||
|
||
/* GIF Styles */ | ||
.gif { | ||
max-width: 100%; | ||
max-height: 100%; | ||
} | ||
|
||
/* Redirect Styles */ | ||
.Redirect { | ||
position: absolute; | ||
text-align: center; | ||
text-decoration: dashed; | ||
margin: auto; | ||
} | ||
|
||
footer { | ||
text-align: center; | ||
color: gray; | ||
background-color: transparent; | ||
} | ||
/* Theme Styles */ | ||
[data-theme="dark"] { | ||
--color-bg: #000000; | ||
--color-fg: #ffffff; | ||
} | ||
|
||
[data-theme="light"] { | ||
filter: invert(100%); | ||
} | ||
|
||
[data-theme="light"] :not(img, input, footer) { | ||
filter: invert(100%); | ||
} | ||
|
||
[data-theme="light"] .img { | ||
-webkit-transform: rotate(180deg); | ||
-moz-transform: rotate(180deg); | ||
-ms-transform: rotate(180deg); | ||
-o-transform: rotate(180deg); | ||
transform: rotate(180deg); | ||
display: block; | ||
left: -3px; | ||
position: absolute; | ||
top: -3px; | ||
height: 35px; | ||
width: 35px; | ||
background: inherit; | ||
background-clip: text; | ||
-webkit-background-clip: text; | ||
color: transparent; | ||
filter: invert(1) grayscale(1); | ||
-webkit-filter: invert(1) grayscale(1); | ||
} | ||
|
||
/* Body Styles */ | ||
body { | ||
background-color: #000000; | ||
color: #ffffff; | ||
display: inline-block; | ||
min-height: 10px; | ||
place-items: left; | ||
font-family: Arial, Helvetica, sans-serif; | ||
user-select: none; | ||
-webkit-user-select: none; | ||
-webkit-user-drag: none; | ||
} | ||
|
||
button { | ||
color: transparent; | ||
background-color: transparent; | ||
width: 35px; | ||
height: 35px; | ||
} | ||
|
||
/* Image Styles */ | ||
.img { | ||
display: block; | ||
left: 23px; | ||
position: absolute; | ||
top: 23px; | ||
height: 35px; | ||
width: 35px; | ||
background: inherit; | ||
background-clip: text; | ||
-webkit-background-clip: text; | ||
color: transparent; | ||
filter: invert(1) grayscale(1); | ||
-webkit-filter: invert(1) grayscale(1); | ||
} | ||
|
||
/* Header Styles */ | ||
.header { | ||
text-align: left; | ||
} | ||
|
||
.header h1 { | ||
font-size: 20px; | ||
} | ||
|
||
.header a { | ||
color: deeppink; | ||
} | ||
|
||
/* Intro Styles */ | ||
.intro { | ||
padding-left: 15px; | ||
text-align: left; | ||
font-size: 15px; | ||
} | ||
|
||
/* Main Container Styles */ | ||
.main-void-container { | ||
display: inline-flex; | ||
align-items: flex-start; | ||
padding: 15px; | ||
align-content: center; | ||
max-width: 100%; | ||
max-height: 100%; | ||
} | ||
|
||
/* Main Section Styles */ | ||
.main { | ||
text-align: left; | ||
max-width: 100%; | ||
max-height: 100%; | ||
} | ||
|
||
/* Void Section Styles */ | ||
.void { | ||
padding-left: 15px; | ||
padding-right: 10%; | ||
max-width: 100%; | ||
} | ||
|
||
/* Paragraph Link Styles */ | ||
p a { | ||
text-decoration: none; | ||
color: magenta; | ||
} | ||
|
||
p a:hover { | ||
color: red; | ||
} | ||
|
||
/* GIF Styles */ | ||
.gif { | ||
max-width: 100%; | ||
max-height: 100%; | ||
} | ||
|
||
/* Redirect Styles */ | ||
.Redirect { | ||
position: absolute; | ||
text-align: center; | ||
text-decoration: dashed; | ||
margin: auto; | ||
} | ||
|
||
footer { | ||
text-align: center; | ||
color: gray; | ||
background-color: transparent; | ||
} | ||
} |
Oops, something went wrong.