mirror of
https://github.com/coollabsio/coolify.git
synced 2026-08-24 02:24:11 -05:00
feat(templates): add Obsidian LiveSync CouchDB service template
Add the Obsidian LiveSync compose template, service logo, and coverage for its configuration.
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
<svg width="832" height="832" viewBox="0 0 832 832" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="mask0_1_4" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="832" height="832">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M832 259.119C832 249.242 832.004 239.364 831.943 229.486C831.894 221.165 831.798 212.846 831.572 204.529C831.083 186.402 830.014 168.119 826.79 150.194C823.52 132.01 818.181 115.086 809.767 98.5644C801.496 82.3253 790.691 67.4655 777.799 54.5826C764.91 41.6998 750.046 30.902 733.801 22.6356C717.263 14.2197 700.321 8.88238 682.117 5.61396C664.19 2.39502 645.902 1.32776 627.775 0.838055C619.452 0.612891 611.129 0.517979 602.804 0.466484C592.921 0.405901 583.038 0.41095 573.155 0.41095L458.404 0H372.58L259.86 0.41095C249.958 0.41095 240.055 0.405901 230.153 0.466484C221.811 0.517979 213.473 0.612891 205.134 0.838055C186.964 1.32776 168.635 2.39603 150.666 5.61901C132.437 8.88641 115.47 14.2217 98.9093 22.6315C82.6299 30.899 67.7338 41.6978 54.8177 54.5826C41.9036 67.4645 31.0786 82.3213 22.792 98.5573C14.3549 115.087 9.00553 132.021 5.72804 150.215C2.50103 168.133 1.43176 186.41 0.940032 204.529C0.715878 212.847 0.618947 221.166 0.568462 229.486C0.50788 239.365 0 251.636 0 261.514L0.0030291 372.672L0 459.416L0.512928 572.936C0.512928 582.827 0.508889 592.718 0.568462 602.609C0.618947 610.941 0.715878 619.271 0.941042 627.6C1.43176 645.751 2.50305 664.06 5.73308 682.009C9.00956 700.217 14.358 717.165 22.7879 733.708C31.0756 749.971 41.9026 764.85 54.8177 777.751C67.7328 790.652 82.6249 801.464 98.9012 809.742C115.472 818.169 132.448 823.513 150.687 826.786C168.648 830.01 186.971 831.079 205.134 831.569C213.473 831.794 221.812 831.89 230.154 831.94C240.056 832.001 249.958 831.997 259.86 831.997L373.599 832H459.636L573.155 831.996C583.038 831.996 592.921 832.001 602.804 831.94C611.129 831.89 619.452 831.794 627.775 831.569C645.909 831.078 664.203 830.008 682.138 826.782C700.331 823.509 717.264 818.167 733.794 809.745C750.042 801.468 764.909 790.654 777.799 777.751C790.689 764.852 801.493 749.975 809.764 733.715C818.183 717.164 823.522 700.208 826.794 681.988C830.015 664.046 831.083 645.744 831.573 627.6C831.798 619.27 831.894 610.94 831.943 602.609C832.005 592.718 832 582.827 832 572.936C832 572.936 831.994 461.42 831.994 459.416V372.581C831.994 371.101 832 259.119 832 259.119Z" fill="white"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_1_4)">
|
||||
<rect width="832" height="832" transform="translate(0.34375 -0.236816)" fill="#1B1B1B"/>
|
||||
<rect width="832" height="832" transform="translate(0.34375 -0.236816)" fill="url(#paint0_radial_1_4)"/>
|
||||
<rect width="832" height="832" transform="translate(0.34375 -0.236816)" fill="url(#paint1_radial_1_4)"/>
|
||||
<g filter="url(#filter0_f_1_4)">
|
||||
<path d="M572.262 707.437C568.044 738.596 537.382 762.936 506.911 754.532C463.495 742.638 413.226 724.086 367.994 720.629C362.031 720.173 298.67 715.396 298.67 715.396C287.462 714.602 276.942 709.732 269.115 701.717L149.663 579.398C136.608 566.032 133.075 546.099 140.745 529.1C140.745 529.1 214.608 367.682 217.351 359.288C220.095 350.893 230.162 277.68 236.128 238.349C237.71 227.926 242.884 218.372 250.766 211.322L392.074 84.9217C411.734 67.3369 442.249 69.9428 458.605 90.603L577.31 240.549C584.027 249.036 587.469 259.582 587.519 270.38C587.655 298.788 590.012 357.113 605.808 394.679C621.174 431.22 649.374 470.683 664.113 490.102C669.768 497.555 670.635 507.632 665.857 515.671C655.455 533.183 634.903 566.808 605.808 609.949C585.749 639.695 576.453 676.466 572.262 707.437Z" fill="black" fill-opacity="0.29"/>
|
||||
</g>
|
||||
<path d="M573.418 702.232C569.203 733.532 538.572 757.983 508.131 749.541C464.758 737.592 414.539 718.956 369.351 715.483C363.394 715.026 300.096 710.227 300.096 710.227C288.899 709.429 278.389 704.537 270.569 696.485L151.235 573.611C138.194 560.184 134.664 540.16 142.327 523.084C142.327 523.084 216.117 360.933 218.857 352.5C221.598 344.068 231.656 270.522 237.616 231.013C239.196 220.542 244.365 210.944 252.239 203.862L393.407 76.8878C413.048 59.2231 443.533 61.8408 459.873 82.595L578.461 233.222C585.171 241.747 588.609 252.341 588.66 263.188C588.795 291.726 591.15 350.316 606.93 388.053C622.281 424.759 650.454 464.402 665.178 483.909C670.828 491.396 671.694 501.519 666.92 509.594C656.529 527.186 635.997 560.963 606.93 604.301C586.891 634.182 577.605 671.12 573.418 702.232Z" fill="#6C31E3"/>
|
||||
<path d="M283.428 705.773C338.847 593.265 337.301 512.663 313.719 455.14C292.016 402.206 251.651 368.818 219.835 348.097C219.165 351.09 218.194 354.013 216.935 356.819L142.325 523.084C134.662 540.161 138.192 560.185 151.233 573.611L270.567 696.486C274.311 700.34 278.672 703.47 283.428 705.773Z" fill="url(#paint2_radial_1_4)"/>
|
||||
<path d="M508.146 749.525C538.58 757.966 569.207 733.516 573.421 702.216C577.05 675.269 584.499 643.949 599.449 616.632C565.148 542.797 523.669 504.508 478.197 487.537C430.064 469.573 377.458 475.496 324.157 488.44C336.073 542.665 328.94 613.483 283.491 705.763C288.666 708.269 294.309 709.795 300.14 710.21C300.14 710.21 332.936 712.972 371.94 715.732C410.943 718.493 468.984 738.665 508.146 749.525Z" fill="url(#paint3_radial_1_4)"/>
|
||||
<path d="M434.243 477.416C449.219 478.981 463.896 482.208 478.182 487.538C523.662 504.51 565.151 542.801 599.457 616.63C601.763 612.416 604.251 608.296 606.931 604.301C635.996 560.963 656.528 527.186 666.919 509.594C671.693 501.519 670.827 491.396 665.176 483.908C650.453 464.402 622.28 424.759 606.931 388.053C591.149 350.316 588.794 291.726 588.66 263.188C588.608 252.341 585.17 241.747 578.46 233.222L459.871 82.5946C459.238 81.7892 458.582 81.0112 457.907 80.2606C466.608 108.776 466.019 131.716 460.65 152.569C455.674 171.901 446.589 189.44 436.993 207.966L436.992 207.969C433.772 214.182 430.498 220.507 427.299 227.049C414.567 253.092 403.072 282.562 401.377 322.081C399.68 361.602 407.782 411.17 434.246 477.415L434.243 477.416Z" fill="url(#paint4_radial_1_4)"/>
|
||||
<path d="M434.227 477.415C407.764 411.172 399.659 361.602 401.356 322.08C403.052 282.558 414.547 253.087 427.28 227.042C430.48 220.499 433.756 214.175 436.975 207.96C446.569 189.433 455.654 171.896 460.63 152.566C465.999 131.708 466.588 108.762 457.879 80.2342C441.149 61.6665 412.27 59.9167 393.401 76.8878L252.233 203.862C244.359 210.944 239.189 220.542 237.61 231.013L220.425 344.931C220.265 345.988 220.068 347.038 219.835 348.082C251.652 368.803 292.024 402.194 313.729 455.135C317.968 465.476 321.496 476.559 324.108 488.443C361.594 479.339 398.738 473.71 434.227 477.415Z" fill="url(#paint5_radial_1_4)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M401.632 319.477C399.931 358.681 404.824 403.653 431.232 469.759L422.94 469.01C399.247 400.027 394.092 364.659 395.817 324.912C397.544 285.147 410.392 254.569 423.197 228.485C426.44 221.879 434.007 209.474 437.244 203.248C446.832 184.811 453.213 175.073 458.691 158.221C466.347 134.675 464.691 123.523 463.818 112.425C469.897 152.545 446.824 187.432 429.381 222.964C416.675 248.848 403.332 280.291 401.632 319.477Z" fill="url(#paint6_radial_1_4)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M321.527 458.055C324.659 465.298 327.618 471.146 329.485 480.107L322.566 481.662C319.686 471.199 317.462 463.755 313.477 454.779C289.631 398.521 251.361 369.583 220.087 348.358C257.863 368.682 296.635 400.492 321.527 458.055Z" fill="url(#paint7_radial_1_4)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M329.887 487.185C343.101 548.675 328.36 626.792 284.919 702.728C321.23 627.472 338.832 555.193 324.172 488.411L329.887 487.185Z" fill="url(#paint8_radial_1_4)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M479.822 481.654C551.046 508.308 578.471 566.832 598.969 615.651C573.652 564.53 538.456 508.074 477.267 487.119C430.708 471.173 391.388 473.064 324.168 488.32L322.67 481.654C394.009 465.4 431.309 463.499 479.822 481.654Z" fill="url(#paint9_radial_1_4)"/>
|
||||
<g filter="url(#filter1_i_1_4)" style="mix-blend-mode:screen">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M832.344 259.119C832.344 249.242 832.348 239.364 832.287 229.486C832.238 221.165 832.142 212.846 831.916 204.529C831.427 186.402 830.358 168.119 827.134 150.194C823.864 132.01 818.525 115.086 810.111 98.5644C801.84 82.3253 791.035 67.4655 778.143 54.5826C765.254 41.6998 750.39 30.902 734.145 22.6356C717.606 14.2197 700.664 8.88238 682.461 5.61396C664.533 2.39502 646.246 1.32776 628.118 0.838055C619.796 0.612891 611.473 0.517979 603.148 0.466484C593.265 0.405901 583.382 0.41095 573.499 0.41095L458.748 0H372.924L260.203 0.41095C250.301 0.41095 240.399 0.405901 230.497 0.466484C222.155 0.517979 213.817 0.612891 205.478 0.838055C187.308 1.32776 168.979 2.39603 151.009 5.61901C132.781 8.88641 115.814 14.2217 99.2531 22.6315C82.9737 30.899 68.0775 41.6978 55.1614 54.5826C42.2474 67.4645 31.4224 82.3213 23.1357 98.5573C14.6987 115.087 9.34928 132.021 6.07179 150.215C2.84478 168.133 1.77551 186.41 1.28378 204.529C1.05963 212.847 0.962697 221.166 0.912212 229.486C0.85163 239.365 0.34375 251.636 0.34375 261.514L0.346779 372.672L0.34375 459.416L0.856678 572.936C0.856678 582.827 0.852639 592.718 0.912212 602.609C0.962697 610.941 1.05963 619.271 1.28479 627.6C1.77551 645.751 2.8468 664.06 6.07683 682.009C9.35331 700.217 14.7017 717.165 23.1317 733.708C31.4193 749.971 42.2464 764.85 55.1614 777.751C68.0765 790.652 82.9686 801.464 99.245 809.742C115.816 818.169 132.791 823.513 151.031 826.786C168.992 830.01 187.315 831.079 205.478 831.569C213.817 831.794 222.156 831.89 230.498 831.94C240.4 832.001 250.301 831.997 260.203 831.997L373.942 832H459.98L573.499 831.996C583.382 831.996 593.265 832.001 603.148 831.94C611.473 831.89 619.796 831.794 628.118 831.569C646.253 831.078 664.546 830.008 682.482 826.782C700.675 823.509 717.608 818.167 734.138 809.745C750.386 801.468 765.253 790.654 778.143 777.751C791.033 764.852 801.837 749.975 810.108 733.715C818.527 717.164 823.866 700.208 827.138 681.988C830.359 664.046 831.427 645.744 831.917 627.6C832.142 619.27 832.238 610.94 832.287 602.609C832.349 592.718 832.344 582.827 832.344 572.936C832.344 572.936 832.338 461.42 832.338 459.416V372.581C832.338 371.101 832.344 259.119 832.344 259.119Z" fill="black"/>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_f_1_4" x="123.736" y="60.2524" width="558.222" height="708.957" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<feGaussianBlur stdDeviation="6.5" result="effect1_foregroundBlur_1_4"/>
|
||||
</filter>
|
||||
<filter id="filter1_i_1_4" x="0.34375" y="0" width="832" height="833" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="6"/>
|
||||
<feGaussianBlur stdDeviation="0.5"/>
|
||||
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0"/>
|
||||
<feBlend mode="normal" in2="shape" result="effect1_innerShadow_1_4"/>
|
||||
</filter>
|
||||
<radialGradient id="paint0_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(416 521.793) rotate(90) scale(339.695 441.724)">
|
||||
<stop stop-opacity="0.35"/>
|
||||
<stop offset="1" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint1_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(416) rotate(90) scale(832)">
|
||||
<stop stop-color="white" stop-opacity="0.05"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint2_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(277.468 694.667) rotate(-104.574) scale(312.164 208.025)">
|
||||
<stop stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="1" stop-opacity="0.1"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint3_radial_1_4" cx="0" cy="0" r="1" gradientTransform="matrix(-112.742 -231.813 266.153 -129.482 494.168 764.607)" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0.3"/>
|
||||
<stop offset="1" stop-opacity="0.25"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint4_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(543.525 566.311) rotate(-82.4846) scale(512.246 378.451)">
|
||||
<stop stop-color="white" stop-opacity="0.55"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.05"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint5_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(296.174 476.378) rotate(-77.7214) scale(437.431 298.317)">
|
||||
<stop stop-color="white" stop-opacity="0.83"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.4"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint6_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(476.526 236.681) rotate(102.236) scale(227.604 153.482)">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.17"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint7_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(209.872 359.957) rotate(45.3237) scale(167.71 357.205)">
|
||||
<stop stop-color="white" stop-opacity="0.2"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.44"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint8_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(336.488 439.314) rotate(80.2016) scale(196.566 417.419)">
|
||||
<stop stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.35"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint9_radial_1_4" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(597.124 599.809) rotate(-152.297) scale(299.519 942.568)">
|
||||
<stop stop-color="white" stop-opacity="0.21"/>
|
||||
<stop offset="0.46738" stop-color="white" stop-opacity="0.19"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0.29"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,60 @@
|
||||
# documentation: https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/setup_own_server.md
|
||||
# slogan: Self-hosted sync backend for Obsidian LiveSync plugin using CouchDB
|
||||
# category: storage
|
||||
# tags: obsidian,couchdb,sync,notes,markdown
|
||||
# logo: svgs/obsidian-livesync.svg
|
||||
# port: 5984
|
||||
|
||||
services:
|
||||
couchdb:
|
||||
image: couchdb:3.4.2
|
||||
environment:
|
||||
# Tells Coolify to proxy this service on port 5984 at the assigned domain
|
||||
- SERVICE_FQDN_COUCHDB_5984
|
||||
# Coolify auto-generates and persists these — find them under Environment Variables
|
||||
- COUCHDB_USER=${SERVICE_USER_COUCHDB}
|
||||
- COUCHDB_PASSWORD=${SERVICE_PASSWORD_64_COUCHDB}
|
||||
# Max size of a single document (bytes). Default: 50MB.
|
||||
- MAX_DOCUMENT_SIZE=${MAX_DOCUMENT_SIZE:-52428800}
|
||||
# Max HTTP request size (bytes). Should be slightly above MAX_DOCUMENT_SIZE to allow multipart overhead.
|
||||
# Raise only if you attach very large files to your notes. Default: 64MB.
|
||||
- MAX_HTTP_REQUEST_SIZE=${MAX_HTTP_REQUEST_SIZE:-67108864}
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./local.ini
|
||||
target: /opt/couchdb/etc/local.ini
|
||||
content: |
|
||||
[couchdb]
|
||||
single_node=true
|
||||
max_document_size = ${MAX_DOCUMENT_SIZE}
|
||||
|
||||
[chttpd]
|
||||
require_valid_user = true
|
||||
max_http_request_size = ${MAX_HTTP_REQUEST_SIZE}
|
||||
|
||||
[chttpd_auth]
|
||||
require_valid_user = true
|
||||
authentication_redirect = /_utils/session.html
|
||||
|
||||
[httpd]
|
||||
WWW-Authenticate = Basic realm="couchdb"
|
||||
enable_cors = true
|
||||
|
||||
[cors]
|
||||
origins = app://obsidian.md,capacitor://localhost,http://localhost
|
||||
credentials = true
|
||||
headers = accept, authorization, content-type, origin, referer
|
||||
methods = GET, PUT, POST, HEAD, DELETE
|
||||
max_age = 3600
|
||||
- couchdb-data:/opt/couchdb/data
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- curl -f -u "$${COUCHDB_USER}:$${COUCHDB_PASSWORD}" http://localhost:5984/_up
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
start_period: 40s
|
||||
retries: 3
|
||||
|
||||
volumes:
|
||||
couchdb-data:
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
it('includes an Obsidian LiveSync one-click service template', function () {
|
||||
$templatePath = __DIR__.'/../../templates/compose/obsidian-livesync.yaml';
|
||||
|
||||
expect($templatePath)->toBeFile();
|
||||
|
||||
$compose = file_get_contents($templatePath);
|
||||
|
||||
expect($compose)
|
||||
->toContain('image: couchdb:3.4.2')
|
||||
->toContain('SERVICE_FQDN_COUCHDB_5984')
|
||||
->toContain('COUCHDB_USER=${SERVICE_USER_COUCHDB}')
|
||||
->toContain('COUCHDB_PASSWORD=${SERVICE_PASSWORD_64_COUCHDB}')
|
||||
->toContain('MAX_DOCUMENT_SIZE=${MAX_DOCUMENT_SIZE:-52428800}')
|
||||
->toContain('MAX_HTTP_REQUEST_SIZE=${MAX_HTTP_REQUEST_SIZE:-67108864}')
|
||||
->toContain('source: ./local.ini')
|
||||
->toContain('couchdb-data:/opt/couchdb/data')
|
||||
->toContain('http://localhost:5984/_up');
|
||||
});
|
||||
|
||||
it('ships the Obsidian LiveSync service icon', function () {
|
||||
expect(__DIR__.'/../../svgs/obsidian-livesync.svg')->toBeFile();
|
||||
});
|
||||
Reference in New Issue
Block a user