Add Openinary Template (#567)

* feat: add Openinary template

* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
This commit is contained in:
florianheysen
2025-12-03 17:01:30 +01:00
committed by GitHub
parent 0fd2456a2a
commit 3205b672c4
4 changed files with 103 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
version: "3.8"
services:
openinary:
image: openinary/openinary:${IMAGE_TAG:-latest}
pull_policy: always
restart: unless-stopped
expose:
- 3000
environment:
NODE_ENV: production
MODE: fullstack
NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL:-/api}
BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET}
BETTER_AUTH_URL: ${BETTER_AUTH_URL}
ALLOWED_ORIGIN: ${ALLOWED_ORIGIN:-http://${domain}}
DOCKER_CONTAINER: "true"
volumes:
- cache-data:/app/apps/api/cache
- public-files:/app/apps/api/public
- db-data:/app/data
- db-data:/app/web-standalone/data
volumes:
cache-data:
public-files:
db-data:

View File

@@ -0,0 +1,18 @@
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_58_6)">
<path d="M192.271 500.089C140.241 500.089 114.225 500.082 93.2175 493.075C52.5263 479.5 20.5887 447.563 7.01375 406.871C0.00749722 385.864 8.16246e-06 359.848 1.27111e-05 307.818L1.77754e-05 249.889L156.139 249.889L43.5238 297.763L76.9262 319.935L186.19 277.744L134.899 345.614L171.786 355.713L228.426 292.236L232.644 363.725L270.219 363.725L274.503 292.236L331.099 355.713L367.964 345.614L316.739 277.765L425.937 319.935L459.34 297.763L346.746 249.889L500 249.889L500 307.818C500 359.848 499.993 385.864 492.987 406.871C479.411 447.563 447.474 479.5 406.783 493.075C385.775 500.082 359.759 500.089 307.729 500.089L192.271 500.089Z" fill="white"/>
<rect y="131.18" width="500" height="233.853" rx="116.927" fill="white"/>
<path d="M208.22 500H192.261C150.806 500 125.865 499.993 106.812 496.449L217.075 350.43L208.22 500Z" fill="#FC1F1C"/>
<path d="M390.595 496.894C371.87 499.986 347.336 500.001 307.721 500.001H288.855L279.955 350.388L390.595 496.894Z" fill="#FC1F1C"/>
<path d="M495.886 395.884C495.081 399.716 494.133 403.318 492.978 406.782C485.413 429.458 472.132 449.402 454.826 464.977L330.492 325.549L495.886 395.884Z" fill="#FC1F1C"/>
<path d="M43.5623 463.491C27.0439 448.14 14.3367 428.751 7.00782 406.784C5.73871 402.979 4.68498 399.014 3.83398 394.755L166.543 325.574L43.5623 463.491Z" fill="#FC1F1C"/>
<path d="M500.011 307.73C500.011 321.786 499.971 333.944 499.833 344.616L352.172 287.576H500.011V307.73Z" fill="#FC1F1C"/>
<path d="M144.952 287.576L0.133167 343.508C0.00882632 333.103 0 321.301 0 307.73V287.576H144.952Z" fill="#FC1F1C"/>
<path d="M307.729 0C359.759 0 385.775 0.00692083 406.782 7.0135C447.474 20.5891 479.411 52.526 492.986 93.2174C499.993 114.225 500 140.241 500 192.271V250.2H343.861L456.476 202.326L423.074 180.154L313.81 222.345L365.101 154.475L328.214 144.376L271.574 207.853L267.356 136.364H229.781L225.498 207.853L168.901 144.376L132.036 154.475L183.261 222.324L74.0634 180.154L40.6605 202.326L153.254 250.2H0V192.271C0 140.241 0.00692083 114.225 7.0135 93.2174C20.5891 52.526 52.526 20.5891 93.2174 7.0135C114.225 0.00692083 140.241 0 192.271 0H307.729Z" fill="#FC1F1C"/>
</g>
<defs>
<clipPath id="clip0_58_6">
<rect width="500" height="500" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,40 @@
[variables]
main_domain = "${domain}"
image_tag = "latest"
better_auth_secret = "${password:64}"
better_auth_url = "http://${main_domain}"
allowed_origin = "http://${main_domain}"
next_public_api_base_url = "/api"
[config]
[[config.domains]]
serviceName = "openinary"
port = 3000
host = "${main_domain}"
[config.env]
IMAGE_TAG = "${image_tag}"
BETTER_AUTH_SECRET = "${better_auth_secret}"
BETTER_AUTH_URL = "${better_auth_url}"
ALLOWED_ORIGIN = "${allowed_origin}"
NEXT_PUBLIC_API_BASE_URL = "${next_public_api_base_url}"
[[config.mounts]]
serviceName = "openinary"
volumeName = "cache-data"
mountPath = "/app/apps/api/cache"
[[config.mounts]]
serviceName = "openinary"
volumeName = "public-files"
mountPath = "/app/apps/api/public"
[[config.mounts]]
serviceName = "openinary"
volumeName = "db-data"
mountPath = "/app/data"
[[config.mounts]]
serviceName = "openinary"
volumeName = "db-data"
mountPath = "/app/web-standalone/data"

View File

@@ -4177,6 +4177,25 @@
"openai"
]
},
{
"id": "openinary",
"name": "Openinary",
"version": "latest",
"description": "Openinary is a self-hosted Cloudinary alternative.",
"logo": "openinary.svg",
"links": {
"github": "https://github.com/openinary/openinary",
"website": "https://openinary.dev",
"docs": "https://docs.openinary.dev"
},
"tags": [
"media",
"images",
"videos",
"cloudinary-alternative",
"developer-tools"
]
},
{
"id": "openpanel",
"name": "OpenPanel",