Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e0e5d50
feat(pdf-tools): add sanitize-pdf tool for comprehensive document cle…
Oct 22, 2025
b7de4bf
fix(sanitize-pdf): remove javascript actions, external links and font…
Oct 22, 2025
de3c2fe
fix(sanitize-pdf): improve link removal and add named destinations cl…
Oct 22, 2025
06c36a5
chore: update config files, icons and readme
Oct 22, 2025
3cbbc42
Release v1.1.0
Oct 22, 2025
d5a15bc
remove(simpleanalytics): remove simple analytics for self hosted version
Oct 22, 2025
be6c15f
Release v1.1.1
Oct 22, 2025
8ac62b4
feat: implement non-root user security for Docker container
AltuisticIsopod Oct 23, 2025
466646d
feat(pdf): implement qpdf-wasm for secure encryption/decryption
Oct 23, 2025
e0d3075
feat(permissions): rewrite pdf permission handling using qpdf-wasm
Oct 23, 2025
922e425
migrate to nginx-unprivileged for enhanced security
AltuisticIsopod Oct 24, 2025
e3468e3
refactor(qpdf): move initialization logic to helpers module
Oct 24, 2025
874d978
optimize Dockerfile and update nginx base image
AltuisticIsopod Oct 24, 2025
ba20536
feat(pdf-tools): add remove-restrictions tool for unlocking pdfs
Oct 24, 2025
f3e7ef2
Release v1.1.2
Oct 24, 2025
1275334
fix(decrypt): remove redundant password trim check and empty file con…
Oct 24, 2025
89f422b
Release v1.1.3
Oct 24, 2025
24b5204
standardize port mapping to 8080 across all Docker configurations
AltuisticIsopod Oct 25, 2025
e0a253b
Change Licence to AGPL v3
alam00000 Oct 25, 2025
b3bccb4
docs: update project license from Apache 2.0 to GNU AGPLv3
Oct 25, 2025
d3fb7e6
Release v1.1.4
Oct 25, 2025
005ff78
Add video tutorial link for Docker setup
alam00000 Oct 25, 2025
e89dd5e
Merge pull request #95 from AltuisticIsopod/main
alam00000 Oct 25, 2025
da6610f
docs: update GitHub repo URL and improve security docs formatting
Oct 25, 2025
72688cd
Release v1.1.5
Oct 25, 2025
c49957b
Add GHCR publishing support
AltuisticIsopod Oct 27, 2025
392b810
Merge pull request #115 from AltuisticIsopod/main
alam00000 Oct 27, 2025
af75a3d
Update SIMPLE_MODE.md
alam00000 Oct 29, 2025
b7d5819
UX: show pointer cursor on buttons; not-allowed for disabled
Praneeth003 Nov 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
github: alam00000
ko_fi: alio01
ko_fi: alio01
14 changes: 7 additions & 7 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: "daily"
interval: 'daily'
groups:
npm-dependencies:
patterns:
- "*"
- '*'

- package-ecosystem: "github-actions"
directory: "/"
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: "daily"
interval: 'daily'
9 changes: 9 additions & 0 deletions .github/workflows/build-and-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ jobs:
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract version from tag
id: version
run: |
Expand All @@ -55,6 +61,9 @@ jobs:
bentopdf/bentopdf${{ matrix.mode.suffix }}:latest
bentopdf/bentopdf${{ matrix.mode.suffix }}:${{ steps.version.outputs.version_without_v }}
bentopdf/bentopdf${{ matrix.mode.suffix }}:${{ steps.version.outputs.version }}
ghcr.io/${{ github.repository_owner }}/bentopdf${{ matrix.mode.suffix }}:latest
ghcr.io/${{ github.repository_owner }}/bentopdf${{ matrix.mode.suffix }}:${{ steps.version.outputs.version_without_v }}
ghcr.io/${{ github.repository_owner }}/bentopdf${{ matrix.mode.suffix }}:${{ steps.version.outputs.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
41 changes: 33 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
# Build stage
FROM node:20-alpine AS builder

WORKDIR /app

COPY package*.json ./
RUN npm ci

COPY . .

# Build without type checking (vite build only)
Expand All @@ -15,11 +12,39 @@ ENV SIMPLE_MODE=$SIMPLE_MODE
RUN npm run build -- --mode production

# Production stage
FROM nginx:alpine
FROM nginxinc/nginx-unprivileged:stable-alpine-slim

COPY --chown=nginx:nginx --from=builder /app/dist /usr/share/nginx/html
COPY --chown=nginx:nginx nginx.conf /etc/nginx/nginx.conf
RUN mkdir -p /etc/nginx/tmp && chown -R nginx:nginx /etc/nginx/tmp

EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]


# Old Dockerfile for Root User
# # Build stage
# FROM node:20-alpine AS builder

# WORKDIR /app

# COPY package*.json ./
# RUN npm ci

# COPY . .

# # Build without type checking (vite build only)
# # Pass SIMPLE_MODE environment variable if provided
# ARG SIMPLE_MODE=false
# ENV SIMPLE_MODE=$SIMPLE_MODE
# RUN npm run build -- --mode production

# # Production stage
# FROM nginx:alpine

COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
# COPY --from=builder /app/dist /usr/share/nginx/html
# COPY nginx.conf /etc/nginx/nginx.conf

EXPOSE 80
# EXPOSE 8080

CMD ["nginx", "-g", "daemon off;"]
# CMD ["nginx", "-g", "daemon off;"]
Loading