9 Commits

Author SHA1 Message Date
7675c2138e fix: Transform the conf file 🐛
All checks were successful
CI / release (push) Successful in 36s
2025-02-17 10:43:01 +13:00
c150a09f92 fix(ci): Add header for authorization 🐛
Some checks failed
CI / release (push) Failing after 1m24s
2025-02-17 10:31:36 +13:00
cc04f0e9aa fix(ci): Use go-semantic-release to download provider 🐛 💚
Some checks failed
CI / release (push) Failing after 1m26s
2025-02-17 10:20:43 +13:00
42ef0f96f6 feat: Add configurable TRANSPORT_SCHEME
Some checks failed
CI / release (push) Failing after 1m29s
Can now set environment var TRANSPORT_SCHEME=http if you would want to revert from default https transport.
2025-02-17 09:57:19 +13:00
a35bbe7c35 fix: Returned path to user organisation 💚
Some checks failed
CI / release (push) Failing after 28s
2024-06-09 23:19:56 +12:00
5f439808e1 fix(ci): Correct folder name typo ✏️
All checks were successful
CI / release (push) Successful in 2m20s
2024-06-09 23:09:12 +12:00
78c910b30c fix: bump 2024-06-09 23:05:33 +12:00
ef0ab15d60 ci: Added Workflow 2024-06-09 23:02:59 +12:00
434627f001 fix: Replace ADD with COPY for entrypoint 2024-06-09 22:52:01 +12:00
6 changed files with 93 additions and 7 deletions

59
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: CI
on:
push:
branches:
- "**"
tags:
- "!**"
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to Container Registry
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create docker image
uses: go-semantic-release/action@v1
with:
hooks: exec
custom-arguments: --provider=gitea
env:
GITEA_TOKEN: ${{ secrets.G_TOKEN }}
GITEA_HOST: ${{ vars.G_SERVER_URL}}
- name: ntfy-success-notifications
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ vars.NTFY_URL }}'
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_TOKEN }}" }'
topic: 'ci-status'
priority: 4
tags: +1,partying_face,action,successfully,completed
details: Workflow has been successfully completed!
icon: 'https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png'
image: true
- name: ntfy-failed-notifications
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ vars.NTFY_URL }}'
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_TOKEN }}" }'
topic: 'ci-status'
priority: 5
tags: +1,partying_face,action,failed
details: Workflow has failed!
actions: 'default'

22
.semrelrc Normal file
View File

@@ -0,0 +1,22 @@
{
"plugins": {
"provider": {
"name": "gitea"
},
"changelog-generator": {
"name": "default",
"options": {
"emojis": "true"
}
},
"hooks": {
"names": [
"exec"
],
"options": {
"exec_on_success": "docker buildx build --progress=plain -t guisea/pypi-proxy:v{{.NewRelease.Version}} -t guisea/pypi-proxy:latest --push .",
"exec_on_no_release": "echo {{.Reason}}: {{.Message}}"
}
}
}
}

View File

@@ -1,11 +1,12 @@
FROM nginx:latest AS build
COPY conf/nginx.conf /etc/nginx/nginx.conf
ADD --chmod=a+x entrypoint/docker-entrypoint.sh /docker-entrypoint.sh
COPY entrypoint/docker-entrypoint.sh /docker-entrypoint.sh
# Create the folder structure for the cache
RUN mkdir -p /var/lib/nginx/pypi && \
chown -R www-data:www-data /var/lib/nginx
chown -R www-data:www-data /var/lib/nginx && \
chmod a+x /docker-entrypoint.sh
FROM scratch as final
@@ -17,6 +18,8 @@ VOLUME [ "/var/lib/nginx/pypi" ]
EXPOSE 80
ENV TZ=Pacific/Auckland
# Transport scheme default is https
ENV TRANSPORT_SCHEME=https
ENTRYPOINT [ "/docker-entrypoint.sh" ]

View File

@@ -42,3 +42,4 @@ To use this proxy see below Compose File for Docker Swarm.
- traefik.http.routers.pypi.tls.certresolver=le
- traefik.enable=true
- traefik.docker.network=traefik-net

View File

@@ -81,8 +81,8 @@ http {
location / {
# Replace any reference to actual pypi w/ caching proxy
sub_filter 'https://pypi.org' $scheme://$host;
sub_filter 'https://files.pythonhosted.org' $scheme://%%PYPI_FILES_HOSTNAME%%;
sub_filter 'https://pypi.org' %%TRANSPORT_SCHEME%%://$host;
sub_filter 'https://files.pythonhosted.org' %%TRANSPORT_SCHEME%%://%%PYPI_FILES_HOSTNAME%%;
sub_filter_once off;
sub_filter_types '*';
proxy_pass https://pypi;
@@ -90,8 +90,8 @@ http {
}
location ^~ /simple {
sub_filter 'https://pypi.org' $scheme://$host;
sub_filter 'https://files.pythonhosted.org' $scheme://%%PYPI_FILES_HOSTNAME%%;
sub_filter 'https://pypi.org' %%TRANSPORT_SCHEME%%://$host;
sub_filter 'https://files.pythonhosted.org' %%TRANSPORT_SCHEME%%://%%PYPI_FILES_HOSTNAME%%;
sub_filter_types '*';
sub_filter_once off;
# Make sure URI ends with /
@@ -128,7 +128,7 @@ http {
location / {
# Replace any reference to actual pypi w/ caching proxy
sub_filter 'https://files.pythonhosted.org' $scheme://%%PYPI_FILES_HOSTNAME%%;
sub_filter 'https://files.pythonhosted.org' %%TRANSPORT_SCHEME%%://%%PYPI_FILES_HOSTNAME%%;
sub_filter_once off;
sub_filter_types '*';
proxy_pass https://pypi-files;

View File

@@ -11,6 +11,7 @@ fi
sed -i -e "s|%%PYPI_FILES_HOSTNAME%%|${PYPI_FILES_HOSTNAME}|g" \
-e "s|%%PYPI_HOSTNAME%%|${PYPI_HOSTNAME}|g" \
-e "s|%%TRANSPORT_SCHEME%%|${TRANSPORT_SCHEME}|g" \
/etc/nginx/nginx.conf
if [ "$1" = "nginx" -o "$1" = "nginx-debug" ]; then