Compare commits

..

11 Commits

Author SHA1 Message Date
2039f673ad chore(deps): update docker/build-push-action action to v6
All checks were successful
Publish Docker Image / docker (push) Successful in 1m19s
2024-06-17 10:01:38 +00:00
Lee
ca49cf2a51 Update README.md 2024-02-28 18:37:22 +00:00
Lee
14ce3e887c make nginx build silently
All checks were successful
Publish Docker Image / docker (push) Successful in 1m13s
2024-02-26 17:52:32 +00:00
Lee
b893f23ba5 Merge pull request 'chore(deps): update actions/cache action to v4' (#19) from renovate/actions-cache-4.x into master
All checks were successful
Publish Docker Image / docker (push) Successful in 1m1s
Reviewed-on: #19
2024-02-26 17:49:24 +00:00
Lee
4a5b7a7697 Merge pull request 'chore(deps): update tj-actions/branch-names action to v8' (#18) from renovate/tj-actions-branch-names-8.x into master
All checks were successful
Publish Docker Image / docker (push) Successful in 1m3s
Reviewed-on: #18
2024-02-26 17:48:06 +00:00
Lee
684a894076 Merge pull request 'chore(deps): update alpine docker tag to v3.19.1' (#17) from renovate/alpine-3.x into master
All checks were successful
Publish Docker Image / docker (push) Successful in 1m5s
Reviewed-on: #17
2024-02-26 16:33:44 +00:00
93f49e9326 add default index.html
All checks were successful
Publish Docker Image / docker (push) Successful in 1m7s
2024-02-25 17:37:58 +00:00
fef45ad7f7 chore(deps): update alpine docker tag to v3.19.1 2024-02-01 02:09:49 +00:00
f5f3382d7e chore(deps): update actions/cache action to v4 2024-01-17 17:04:26 +00:00
006ac97c68 fix
All checks were successful
Publish Docker Image / docker (push) Successful in 56s
2024-01-11 05:57:35 +00:00
3e40c88dac chore(deps): update tj-actions/branch-names action to v8 2023-12-31 00:04:50 +00:00
8 changed files with 50 additions and 85 deletions

@ -17,13 +17,13 @@ jobs:
steps: steps:
- name: Get branch name - name: Get branch name
id: branch-name id: branch-name
uses: tj-actions/branch-names@v7 uses: tj-actions/branch-names@v8
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Restore Docker Cache - name: Restore Docker Cache
uses: actions/cache@v3 uses: actions/cache@v4
id: docker-cache id: docker-cache
with: with:
path: /usr/bin/docker path: /usr/bin/docker
@ -47,14 +47,14 @@ jobs:
password: ${{ secrets.REPO_TOKEN }} password: ${{ secrets.REPO_TOKEN }}
- name: Restore Docker Build Cache - name: Restore Docker Build Cache
uses: actions/cache@v3 uses: actions/cache@v4
id: build-cache id: build-cache
with: with:
path: /tmp/.buildx-cache path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx key: ${{ runner.os }}-buildx
- name: Build and Push (Latest) - name: Build and Push (Latest)
uses: docker/build-push-action@v5 uses: docker/build-push-action@v6
if: steps.branch-name.outputs.current_branch == 'master' if: steps.branch-name.outputs.current_branch == 'master'
with: with:
push: true push: true
@ -64,7 +64,7 @@ jobs:
cache-to: type=local,dest=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache
- name: Build and Push (Other Branches) - name: Build and Push (Other Branches)
uses: docker/build-push-action@v5 uses: docker/build-push-action@v6
if: steps.branch-name.outputs.current_branch != 'master' if: steps.branch-name.outputs.current_branch != 'master'
with: with:
push: true push: true

@ -1,5 +1,5 @@
# Stage 1: Build Nginx # Stage 1: Build Nginx
FROM alpine:3.18.5 as builder FROM alpine:3.19.1 as builder
# Install build dependencies and required tools # Install build dependencies and required tools
RUN apk update && apk upgrade && \ RUN apk update && apk upgrade && \
@ -7,12 +7,14 @@ RUN apk update && apk upgrade && \
# Download and build the latest version of Nginx from source # Download and build the latest version of Nginx from source
WORKDIR /tmp WORKDIR /tmp
RUN wget https://nginx.org/download/nginx-1.25.3.tar.gz RUN wget https://nginx.org/download/nginx-1.25.3.tar.gz && \
RUN tar -xzvf nginx-1.25.3.tar.gz tar -xzvf nginx-1.25.3.tar.gz && \
WORKDIR /tmp/nginx-1.25.3 cd nginx-1.25.3 && \
RUN ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/etc/nginx/nginx.conf ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/etc/nginx/nginx.conf && \
RUN make make > /dev/null 2>&1 && \
RUN make install make install > /dev/null 2>&1 && \
make_status=$? && \
if [ $make_status -ne 0 ]; then echo "Nginx build failed"; exit $make_status; fi
# Cleanup unnecessary files # Cleanup unnecessary files
RUN rm -rf /tmp/* RUN rm -rf /tmp/*
@ -23,18 +25,20 @@ COPY ./docker/nginx.conf /etc/nginx/nginx.conf
# Setup scripts # Setup scripts
COPY ./upload.php /tmp/upload.php COPY ./upload.php /tmp/upload.php
COPY ./docker/start.sh /start.sh COPY ./docker/start.sh /start.sh
COPY ./docker/index.html /tmp/index.html
# Copy public directory # Copy public directory
COPY ./public /tmp/public COPY ./public /tmp/public
# Stage 2: Create a smaller production image # Stage 2: Create a smaller production image
FROM alpine:3.18.5 FROM alpine:3.19.1
# Copy Nginx and PHP-FPM binaries and configurations from the builder stage # Copy Nginx and PHP-FPM binaries and configurations from the builder stage
COPY --from=builder /usr/local/nginx /usr/local/nginx COPY --from=builder /usr/local/nginx /usr/local/nginx
COPY --from=builder /usr/local/sbin/nginx /usr/local/sbin/nginx COPY --from=builder /usr/local/sbin/nginx /usr/local/sbin/nginx
COPY --from=builder /etc/nginx /etc/nginx COPY --from=builder /etc/nginx /etc/nginx
COPY --from=builder /tmp/upload.php /tmp/upload.php COPY --from=builder /tmp/upload.php /tmp/upload.php
COPY --from=builder /tmp/index.html /tmp/index.html
COPY --from=builder /start.sh /start.sh COPY --from=builder /start.sh /start.sh
COPY --from=builder /tmp/public /tmp/public COPY --from=builder /tmp/public /tmp/public

@ -1,4 +1,4 @@
# ShareX Upload Script # ShareX Uploader
This PHP script allows you to easily upload ShareX screenshots and videos. It includes token authentication for security and can handle various image file types by converting them to WebP format for efficient storage. This PHP script allows you to easily upload ShareX screenshots and videos. It includes token authentication for security and can handle various image file types by converting them to WebP format for efficient storage.

22
docker/index.html Normal file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ShareX Uploader</title>
<!-- TailwindCSS -->
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body
class="h-screen bg-neutral-900 text-white flex flex-col text-center items-center p-4 gap-2"
>
<p class="text-blue-400 text-4xl">ShareX Uploader</p>
<p class="text-gray-400 text-xl">Created by ImFascinated</p>
<div>
<a href="https://s.fascinated.cc/s/sharex-uploader">Source</a>
<a href="https://s.fascinated.cc/s/gitea">Gitea</a>
<a href="https://s.fascinated.cc/s/github">GitHub</a>
</div>
</body>
</html>

@ -44,13 +44,7 @@ http {
internal; internal;
root /tmp/public; root /tmp/public;
} }
location /public {
root /tmp/public;
try_files $uri $uri/ =404;
}
# Upload endpoint # Upload endpoint
location /upload.php { location /upload.php {
try_files $uri =404; try_files $uri =404;

@ -14,6 +14,14 @@ else
echo "Upload script was not found, copying it." echo "Upload script was not found, copying it."
fi fi
echo "Checking if default index.html exists in /var/www/html"
if [ -f "/var/www/html/index.html" ]; then
echo "Upload script was found, ignoring copy."
else
cp /tmp/index.html /var/www/html
echo "Default index.html was not found, copying it."
fi
# Letting php know that we are running in docker # Letting php know that we are running in docker
echo "env[DOCKER] = true" >> /etc/php81/php-fpm.d/www.conf echo "env[DOCKER] = true" >> /etc/php81/php-fpm.d/www.conf
echo "clear_env = no" >> /etc/php81/php-fpm.d/www.conf echo "clear_env = no" >> /etc/php81/php-fpm.d/www.conf

File diff suppressed because one or more lines are too long

@ -6,7 +6,7 @@
<title>File Not Found</title> <title>File Not Found</title>
<!-- TailwindCSS --> <!-- TailwindCSS -->
<script src="./assets/tailwind.js"></script> <script src="https://cdn.tailwindcss.com"></script>
</head> </head>
<body <body
class="h-screen bg-neutral-900 text-white flex flex-col text-center justify-center items-center p-4 gap-2" class="h-screen bg-neutral-900 text-white flex flex-col text-center justify-center items-center p-4 gap-2"