add custom files
5
.gitignore
vendored
@ -17,8 +17,9 @@ version.properties
|
|||||||
pipeline/watchedFolders/
|
pipeline/watchedFolders/
|
||||||
pipeline/finishedFolders/
|
pipeline/finishedFolders/
|
||||||
#### Stirling-PDF Files ###
|
#### Stirling-PDF Files ###
|
||||||
customFiles/
|
# We want to track our custom configs and customFiles
|
||||||
configs/
|
# customFiles/
|
||||||
|
# configs/
|
||||||
watchedFolders/
|
watchedFolders/
|
||||||
|
|
||||||
# Gradle
|
# Gradle
|
||||||
|
0
configs/custom_settings.yml
Executable file
76
configs/settings.yml
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
#############################################################################################################
|
||||||
|
# Welcome to settings file from #
|
||||||
|
# ____ _____ ___ ____ _ ___ _ _ ____ ____ ____ _____ #
|
||||||
|
# / ___|_ _|_ _| _ \| | |_ _| \ | |/ ___| | _ \| _ \| ___| #
|
||||||
|
# \___ \ | | | || |_) | | | || \| | | _ _____| |_) | | | | |_ #
|
||||||
|
# ___) || | | || _ <| |___ | || |\ | |_| |_____| __/| |_| | _| #
|
||||||
|
# |____/ |_| |___|_| \_\_____|___|_| \_|\____| |_| |____/|_| #
|
||||||
|
# #
|
||||||
|
# Do not comment out any entry, it will be removed on next startup #
|
||||||
|
# If you want to override with environment parameter follow parameter naming SECURITY_INITIALLOGIN_USERNAME #
|
||||||
|
#############################################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
security:
|
||||||
|
enableLogin: false # set to 'true' to enable login
|
||||||
|
csrfDisabled: true # Set to 'true' to disable CSRF protection (not recommended for production)
|
||||||
|
loginAttemptCount: 5 # lock user account after 5 tries; when using e.g. Fail2Ban you can deactivate the function with -1
|
||||||
|
loginResetTimeMinutes: 120 # lock account for 2 hours after x attempts
|
||||||
|
loginMethod: all # 'all' (Login Username/Password and OAuth2[must be enabled and configured]), 'normal'(only Login with Username/Password) or 'oauth2'(only Login with OAuth2)
|
||||||
|
initialLogin:
|
||||||
|
username: '' # Initial username for the first login
|
||||||
|
password: '' # Initial password for the first login
|
||||||
|
oauth2:
|
||||||
|
enabled: false # set to 'true' to enable login (Note: enableLogin must also be 'true' for this to work)
|
||||||
|
client:
|
||||||
|
keycloak:
|
||||||
|
issuer: '' # URL of the Keycloak realm's OpenID Connect Discovery endpoint
|
||||||
|
clientId: '' # Client ID for Keycloak OAuth2
|
||||||
|
clientSecret: '' # Client Secret for Keycloak OAuth2
|
||||||
|
scopes: openid, profile, email # Scopes for Keycloak OAuth2
|
||||||
|
useAsUsername: preferred_username # Field to use as the username for Keycloak OAuth2
|
||||||
|
google:
|
||||||
|
clientId: '' # Client ID for Google OAuth2
|
||||||
|
clientSecret: '' # Client Secret for Google OAuth2
|
||||||
|
scopes: https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile # Scopes for Google OAuth2
|
||||||
|
useAsUsername: email # Field to use as the username for Google OAuth2
|
||||||
|
github:
|
||||||
|
clientId: '' # Client ID for GitHub OAuth2
|
||||||
|
clientSecret: '' # Client Secret for GitHub OAuth2
|
||||||
|
scopes: read:user # Scope for GitHub OAuth2
|
||||||
|
useAsUsername: login # Field to use as the username for GitHub OAuth2
|
||||||
|
issuer: '' # set to any provider that supports OpenID Connect Discovery (/.well-known/openid-configuration) end-point
|
||||||
|
clientId: '' # Client ID from your provider
|
||||||
|
clientSecret: '' # Client Secret from your provider
|
||||||
|
autoCreateUser: false # set to 'true' to allow auto-creation of non-existing users
|
||||||
|
blockRegistration: false # set to 'true' to deny login with SSO without prior registration by an admin
|
||||||
|
useAsUsername: email # Default is 'email'; custom fields can be used as the username
|
||||||
|
scopes: openid, profile, email # Specify the scopes for which the application will request permissions
|
||||||
|
provider: google # Set this to your OAuth provider's name, e.g., 'google' or 'keycloak'
|
||||||
|
|
||||||
|
system:
|
||||||
|
defaultLocale: en-US # Set the default language (e.g. 'de-DE', 'fr-FR', etc)
|
||||||
|
googlevisibility: true # 'true' to allow Google visibility (via robots.txt), 'false' to disallow
|
||||||
|
enableAlphaFunctionality: false # Set to enable functionality which might need more testing before it fully goes live (This feature might make no changes)
|
||||||
|
showUpdate: false # see when a new update is available
|
||||||
|
showUpdateOnlyAdmin: false # Only admins can see when a new update is available, depending on showUpdate it must be set to 'true'
|
||||||
|
customHTMLFiles: true # enable to have files placed in /customFiles/templates override the existing template html files
|
||||||
|
tessdataDir: /usr/share/tessdata # Path to the directory containing the Tessdata files. This setting is relevant for Windows systems. For Windows users, this path should be adjusted to point to the appropriate directory where the Tessdata files are stored.
|
||||||
|
|
||||||
|
ui:
|
||||||
|
appName: Konfuzio PDF Tools # Application's visible name
|
||||||
|
homeDescription: PDF Tools from Konfuzio # Short description or tagline shown on homepage.
|
||||||
|
appNameNavbar: Konfuzio # Name displayed on the navigation bar
|
||||||
|
|
||||||
|
endpoints:
|
||||||
|
toRemove: # List endpoints to disable (e.g. ['img-to-pdf', 'remove-pages'])
|
||||||
|
- crop
|
||||||
|
- pipeline
|
||||||
|
groupsToRemove: [] # List groups to disable (e.g. ['LibreOffice'])
|
||||||
|
|
||||||
|
metrics:
|
||||||
|
enabled: true # 'true' to enable Info APIs (`/api/*`) endpoints, 'false' to disable
|
||||||
|
|
||||||
|
# Automatically Generated Settings (Do Not Edit Directly)
|
||||||
|
AutomaticallyGenerated:
|
||||||
|
key: example
|
21
configs/settings_back.yml
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
# Welcome to settings file
|
||||||
|
# Remove comment marker # if on start of line to enable the configuration
|
||||||
|
# If you want to override with environment parameter follow parameter naming SECURITY_INITIALLOGIN_USERNAME
|
||||||
|
|
||||||
|
security:
|
||||||
|
enableLogin: false # set to 'true' to enable login
|
||||||
|
csrfDisabled: true
|
||||||
|
|
||||||
|
system:
|
||||||
|
defaultLocale: 'en-US' # Set the default language (e.g. 'de-DE', 'fr-FR', etc)
|
||||||
|
googlevisibility: false # 'true' to allow Google visibility (via robots.txt), 'false' to disallow
|
||||||
|
customStaticFilePath: '/customFiles/static/' # Directory path for custom static files
|
||||||
|
|
||||||
|
ui:
|
||||||
|
appName: 'Konfuzio PDF Tools'
|
||||||
|
homeDescription: 'PDF Tools from Konfuzio'
|
||||||
|
appNameNavbar: 'Konfuzio Tools for PDFs'
|
||||||
|
|
||||||
|
endpoints:
|
||||||
|
toRemove: [] # List endpoints to disable (e.g. ['img-to-pdf', 'remove-pages'])
|
||||||
|
groupsToRemove: [] # List groups to disable (e.g. ['LibreOffice'])
|
5
customFiles/static/apple-touch-icon.png
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg viewBox="0.0001 1.0002 73.9999 80.9998" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m902.749 417.51 25.555 14.605c3.553 2.013 5.696 5.729 5.696 9.806v29.21c0 4.026-2.143 7.742-5.696 9.754l-25.555 14.606c-3.554 2.012-7.944 2.012-11.445 0l-25.608-14.606c-3.501-2.012-5.696-5.728-5.696-9.754v-29.21c0-4.077 2.195-7.793 5.696-9.806l25.608-14.605c3.501-2.013 7.891-2.013 11.445 0z" fill="#44b78b" transform="matrix(1, 0, 0, 1, -860.0000000000001, -415)"/>
|
||||||
|
<path d="m891.519 459.853-.103 11.976c0 .639-.513 1.171-1.128 1.171h-8.159c-.616 0-1.129-.532-1.129-1.171v-30.658c0-.639.513-1.171 1.129-1.171h8.107c.616 0 1.129.532 1.129 1.171v10.964l8.21-11.656c.257-.319.565-.479.924-.479h9.646c.616 0 1.129.532 1.129 1.171 0 .266-.102.532-.256.745l-10.468 13.2 11.237 16.021c.36.532.257 1.278-.256 1.65-.154.107-.411.213-.667.213h-10.263c-.41 0-.769-.213-.975-.532z" fill="#fff" transform="matrix(1, 0, 0, 1, -860.0000000000001, -415)"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 981 B |
9435
customFiles/static/css/bootstrap.min.css
vendored
Executable file
5
customFiles/static/css/custom.css
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
.btn-primary {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #20c997;
|
||||||
|
border-color: #20c997;
|
||||||
|
}
|
73
customFiles/static/css/theme/theme.light.css
Executable file
@ -0,0 +1,73 @@
|
|||||||
|
:root {
|
||||||
|
/* Colors */
|
||||||
|
--md-sys-color-primary: rgb(0 96 170);
|
||||||
|
--md-sys-color-surface-tint: rgb(0 96 170);
|
||||||
|
--md-sys-color-on-primary: rgb(255 255 255);
|
||||||
|
--md-sys-color-primary-container: rgb(80 163 255);
|
||||||
|
--md-sys-color-on-primary-container: rgb(0 20 43);
|
||||||
|
--md-sys-color-secondary: rgb(65 96 136);
|
||||||
|
--md-sys-color-on-secondary: rgb(255 255 255);
|
||||||
|
--md-sys-color-secondary-container: rgb(188 215 255);
|
||||||
|
--md-sys-color-on-secondary-container: rgb(32 65 103);
|
||||||
|
--md-sys-color-tertiary: rgb(88 90 138);
|
||||||
|
--md-sys-color-on-tertiary: rgb(255 255 255);
|
||||||
|
--md-sys-color-tertiary-container: rgb(151 153 205);
|
||||||
|
--md-sys-color-on-tertiary-container: rgb(7 9 55);
|
||||||
|
--md-sys-color-error: rgb(186 26 26);
|
||||||
|
--md-sys-color-on-error: rgb(255 255 255);
|
||||||
|
--md-sys-color-error-container: rgb(255 218 214);
|
||||||
|
--md-sys-color-on-error-container: rgb(65 0 2);
|
||||||
|
--md-sys-color-background: rgb(248 249 255);
|
||||||
|
--md-sys-color-on-background: rgb(24 28 34);
|
||||||
|
--md-sys-color-surface: rgb(248 249 255);
|
||||||
|
--md-sys-color-on-surface: rgb(24 28 34);
|
||||||
|
--md-sys-color-surface-variant: rgb(220 227 241);
|
||||||
|
--md-sys-color-on-surface-variant: rgb(64 71 83);
|
||||||
|
--md-sys-color-outline: rgb(112 119 132);
|
||||||
|
--md-sys-color-outline-variant: rgb(192 199 213);
|
||||||
|
--md-sys-color-shadow: rgb(0 0 0);
|
||||||
|
--md-sys-color-scrim: rgb(0 0 0);
|
||||||
|
--md-sys-color-inverse-surface: rgb(45 49 55);
|
||||||
|
--md-sys-color-inverse-on-surface: rgb(238 241 250);
|
||||||
|
--md-sys-color-inverse-primary: rgb(162 201 255);
|
||||||
|
--md-sys-color-primary-fixed: rgb(211 228 255);
|
||||||
|
--md-sys-color-on-primary-fixed: rgb(0 28 56);
|
||||||
|
--md-sys-color-primary-fixed-dim: rgb(162 201 255);
|
||||||
|
--md-sys-color-on-primary-fixed-variant: rgb(0 72 130);
|
||||||
|
--md-sys-color-secondary-fixed: rgb(211 228 255);
|
||||||
|
--md-sys-color-on-secondary-fixed: rgb(0 28 56);
|
||||||
|
--md-sys-color-secondary-fixed-dim: rgb(169 201 246);
|
||||||
|
--md-sys-color-on-secondary-fixed-variant: rgb(40 72 111);
|
||||||
|
--md-sys-color-tertiary-fixed: rgb(225 224 255);
|
||||||
|
--md-sys-color-on-tertiary-fixed: rgb(20 22 66);
|
||||||
|
--md-sys-color-tertiary-fixed-dim: rgb(193 194 248);
|
||||||
|
--md-sys-color-on-tertiary-fixed-variant: rgb(64 67 112);
|
||||||
|
--md-sys-color-surface-dim: rgb(215 218 227);
|
||||||
|
--md-sys-color-surface-bright: rgb(248 249 255);
|
||||||
|
--md-sys-color-surface-container-lowest: rgb(255 255 255);
|
||||||
|
--md-sys-color-surface-container-low: rgb(241 243 253);
|
||||||
|
--md-sys-color-surface-container: rgb(235 238 247);
|
||||||
|
--md-sys-color-surface-container-high: rgb(229 232 241);
|
||||||
|
--md-sys-color-surface-container-highest: rgb(223 226 235);
|
||||||
|
/* Tools Color */
|
||||||
|
--md-nav-section-color-opacity: 1;
|
||||||
|
--md-nav-on-section-color-opacity: 1;
|
||||||
|
--md-nav-section-color-sign: rgba(25, 101, 212, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-sign: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
--md-nav-section-color-organize: rgba(120, 130, 255, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-organize: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
--md-nav-section-color-convert: rgba(25, 177, 212, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-convert: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
--md-nav-section-color-security: rgba(66, 72, 80, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-security: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
--md-nav-section-color-other: rgba(72, 189, 84, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-other: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
--md-nav-section-color-advance: rgba(68, 183, 139, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-advance: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
--md-nav-section-color-image: rgba(212, 172, 25, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-image: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
--md-nav-section-color-word: rgba(61, 153, 245, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-word: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
--md-nav-section-color-ppt: rgba(255, 128, 0, var(--md-nav-section-color-opacity));
|
||||||
|
--md-nav-on-section-color-ppt: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity));
|
||||||
|
}
|
5
customFiles/static/favicon-16x16.png
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg viewBox="0.0001 1.0002 73.9999 80.9998" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m902.749 417.51 25.555 14.605c3.553 2.013 5.696 5.729 5.696 9.806v29.21c0 4.026-2.143 7.742-5.696 9.754l-25.555 14.606c-3.554 2.012-7.944 2.012-11.445 0l-25.608-14.606c-3.501-2.012-5.696-5.728-5.696-9.754v-29.21c0-4.077 2.195-7.793 5.696-9.806l25.608-14.605c3.501-2.013 7.891-2.013 11.445 0z" fill="#44b78b" transform="matrix(1, 0, 0, 1, -860.0000000000001, -415)"/>
|
||||||
|
<path d="m891.519 459.853-.103 11.976c0 .639-.513 1.171-1.128 1.171h-8.159c-.616 0-1.129-.532-1.129-1.171v-30.658c0-.639.513-1.171 1.129-1.171h8.107c.616 0 1.129.532 1.129 1.171v10.964l8.21-11.656c.257-.319.565-.479.924-.479h9.646c.616 0 1.129.532 1.129 1.171 0 .266-.102.532-.256.745l-10.468 13.2 11.237 16.021c.36.532.257 1.278-.256 1.65-.154.107-.411.213-.667.213h-10.263c-.41 0-.769-.213-.975-.532z" fill="#fff" transform="matrix(1, 0, 0, 1, -860.0000000000001, -415)"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 981 B |
BIN
customFiles/static/favicon.ico
Executable file
After Width: | Height: | Size: 15 KiB |
5
customFiles/static/favicon.svg
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg viewBox="0.0001 1.0002 73.9999 80.9998" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m902.749 417.51 25.555 14.605c3.553 2.013 5.696 5.729 5.696 9.806v29.21c0 4.026-2.143 7.742-5.696 9.754l-25.555 14.606c-3.554 2.012-7.944 2.012-11.445 0l-25.608-14.606c-3.501-2.012-5.696-5.728-5.696-9.754v-29.21c0-4.077 2.195-7.793 5.696-9.806l25.608-14.605c3.501-2.013 7.891-2.013 11.445 0z" fill="#44b78b" transform="matrix(1, 0, 0, 1, -860.0000000000001, -415)"/>
|
||||||
|
<path d="m891.519 459.853-.103 11.976c0 .639-.513 1.171-1.128 1.171h-8.159c-.616 0-1.129-.532-1.129-1.171v-30.658c0-.639.513-1.171 1.129-1.171h8.107c.616 0 1.129.532 1.129 1.171v10.964l8.21-11.656c.257-.319.565-.479.924-.479h9.646c.616 0 1.129.532 1.129 1.171 0 .266-.102.532-.256.745l-10.468 13.2 11.237 16.021c.36.532.257 1.278-.256 1.65-.154.107-.411.213-.667.213h-10.263c-.41 0-.769-.213-.975-.532z" fill="#fff" transform="matrix(1, 0, 0, 1, -860.0000000000001, -415)"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 981 B |
2
customFiles/static/images/discord.svg
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="6" height="1" fill="currentColor" class="bi bi-link" viewBox="0 0 1 1">
|
||||||
|
</svg>
|
After Width: | Height: | Size: 126 B |
2
customFiles/static/images/docker.svg
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="6" height="1" fill="currentColor" class="bi bi-link" viewBox="0 0 1 1">
|
||||||
|
</svg>
|
After Width: | Height: | Size: 126 B |
2
customFiles/static/images/gear.svg
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="6" height="1" fill="currentColor" class="bi bi-link" viewBox="0 0 1 1">
|
||||||
|
</svg>
|
After Width: | Height: | Size: 126 B |
2
customFiles/static/images/github.svg
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="6" height="1" fill="currentColor" class="bi bi-link" viewBox="0 0 1 1">
|
||||||
|
</svg>
|
After Width: | Height: | Size: 126 B |
2
customFiles/static/images/search.svg
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="6" height="1" fill="currentColor" class="bi bi-link" viewBox="0 0 1 1">
|
||||||
|
</svg>
|
After Width: | Height: | Size: 126 B |
2
customFiles/static/images/suit-heart-fill.svg
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="6" height="1" fill="currentColor" class="bi bi-link" viewBox="0 0 1 1">
|
||||||
|
</svg>
|
After Width: | Height: | Size: 126 B |
9
customFiles/templates/fragments/footer.html_backup
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
<div th:fragment="footer">
|
||||||
|
<footer id="footer" class="text-center py-3">
|
||||||
|
<!-- <a href="https://github.com/Frooodle/Stirling-PDF" target="_blank" class="mx-1" title="Visit Github Repository"><img src="images/github.svg"></img></a>
|
||||||
|
<a href="https://hub.docker.com/r/frooodle/s-pdf" target="_blank" class="mx-1" title="See Docker Hub"><img src="images/docker.svg"></img></a>
|
||||||
|
<a href="https://discord.gg/Cn8pWhQRxZ" target="_blank" class="mx-1" title="Join Discord Channel"><img src="images/discord.svg"></img></a>
|
||||||
|
<a href="https://github.com/sponsors/Frooodle" target="_blank" class="mx-1" title="Donate"><img src="images/suit-heart-fill.svg"></img></a>-->
|
||||||
|
<div th:if="${@appName} != 'Stirling PDF'" class="mt-2" style="color: grey;">Licenses</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|