muerwre.github.io/linux/google-photos-alternative-with-photoprism/index.html
muerwre 3a87fd03d3 commit f380ea7f1c
Author: Fedor Katurov <gotham48@gmail.com>
Date:   Fri Nov 11 15:31:52 2022 +0600

    fixed mobile layout for contacts
2022-11-11 09:33:46 +00:00

6 lines
No EOL
31 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html data-head-attrs="">
<head><title>Google Photos Alternative With Photoprism • Obsidian Garden</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="Photo Prism is a free alternative to Google photos, can be set up with #docker."><meta name="head:count" content="3"><link rel="modulepreload" href="/linux/google-photos-alternative-with-photoprism/_payload.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/entry.c0093fb2.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/default.5912441a.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutMainMenuToggle.da918a25.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutMainMenuToggle.vue_used_vue_type_style_index_0_lang.module.ab60ac3f.js"><link rel="preload" as="style" href="/nuxt/LayoutMainMenuToggle.vue_used_vue_type_style_index_0_lang.5944fda9.css"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutMainMenu.dfb2002f.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/navigation.20429508.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/content.a4e84429.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutThemeToggle.7b0b764c.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutThemeToggle.vue_used_vue_type_style_index_0_lang.module.ff6efd1d.js"><link rel="preload" as="style" href="/nuxt/LayoutThemeToggle.vue_used_vue_type_style_index_0_lang.cfa40af4.css"><link rel="modulepreload" as="script" crossorigin href="/nuxt/LayoutFooter.d1825993.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/_...slug_.6d72d9c7.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/HomeReference.404696a5.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/ProseH2.769edb46.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/ProseP.77f0a6e2.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/ProseA.190d27ff.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/ProseCode.822d2388.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/UiIconCopy.2180c5d0.js"><link rel="modulepreload" as="script" crossorigin href="/nuxt/ProseCode.vue_used_vue_type_style_index_1_lang.module.230a312a.js"><link rel="preload" as="style" href="/nuxt/ProseCode.vue_used_vue_type_style_index_1_lang.24930a5d.css"><link rel="prefetch" as="script" crossorigin href="/nuxt/client-db.320bb8a2.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/web-socket.b6b854c1.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/error-component.da93918a.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/landing.813a3100.js"><link rel="prefetch" as="style" href="/nuxt/LayoutHeader.vue_used_vue_type_style_index_0_lang.6c21f409.css"><link rel="prefetch" as="script" crossorigin href="/nuxt/LayoutHeader.17f7a6e2.js"><link rel="prefetch" as="script" crossorigin href="/nuxt/LayoutHeader.vue_used_vue_type_style_index_0_lang.module.0c694d46.js"><link rel="prefetch" as="style" href="/nuxt/entry.0fc56112.css"><link rel="prefetch" as="image" type="image/svg+xml" href="/nuxt/logo.d91c5032.svg"><link rel="stylesheet" href="/nuxt/LayoutMainMenuToggle.vue_used_vue_type_style_index_0_lang.5944fda9.css"><link rel="stylesheet" href="/nuxt/LayoutThemeToggle.vue_used_vue_type_style_index_0_lang.cfa40af4.css"><link rel="stylesheet" href="/nuxt/ProseCode.vue_used_vue_type_style_index_1_lang.24930a5d.css"><style>._grid_16c5m_1{display:grid;grid-template-columns:360px auto;width:100vw}@media (max-width:1024px){._grid_16c5m_1{grid-template-columns:33vw auto}}@media (max-width:768px){._grid_16c5m_1{grid-template-columns:auto}}._main_16c5m_17{display:flex;flex-direction:column;height:100%;min-width:0;position:relative;z-index:1}._sidebar_16c5m_26{background-color:var(--color-menu-background)}@media (max-width:768px){._sidebar_16c5m_26{background-color:var(--color-menu-overlay-background);opacity:0;position:fixed;transition:opacity .5s;visibility:hidden;width:100%;z-index:2}._sidebar_16c5m_26._active_16c5m_39{opacity:1;visibility:visible}}._menu_16c5m_45{background-color:var(--color-menu-background);height:100vh;max-width:400px;min-width:0;overflow:auto;padding:40px 30px;position:sticky;top:0}@media (max-width:768px){._menu_16c5m_45{transform:translate(-40px);transition:transform .25s .1s}._active_16c5m_39 ._menu_16c5m_45{transform:translate(0)}}._menu_toggle_16c5m_65{border-radius:0 0 8px 0;left:13px;position:fixed;top:13px;transform:translate(0);transition:all .25s;visibility:hidden;z-index:4}@media (max-width:768px){._menu_toggle_16c5m_65{right:0;transform:translate(0);visibility:visible}}._menu_toggle_16c5m_65._active_16c5m_39,._menu_toggle_16c5m_65._shifted_16c5m_82{transform:translate(-13px,-13px)}._menu_toggle_16c5m_65._shifted_16c5m_82{background:var(--color-menu-background)}._footer_16c5m_89{margin-top:40px}._content_16c5m_93{height:100%;width:100%}@media (max-width:768px){._content_16c5m_93{padding-top:40px}}</style><style>._wrapper_vom09_1{display:flex;flex:1;flex-direction:column;height:100%;padding-top:40px}@media (max-width:1024px){._wrapper_vom09_1{padding-top:10px}}._content_vom09_14{flex:1}._footer_vom09_18{border-top:1px solid var(--color-line);margin-top:60px;padding:10px}._theme_toggle_vom09_24{stroke:currentColor;stroke-width:.5px;position:absolute;right:20px;top:20px;z-index:12}@media (max-width:768px){._theme_toggle_vom09_24{stroke-width:1.5px;right:16px;top:16px}}</style><style>._content_1gz79_1{margin:auto;max-width:min(1280px,100vw);padding:0 40px}@media (max-width:1024px){._content_1gz79_1{padding:0 40px}}@media (max-width:768px){._content_1gz79_1{padding:0 20px}}</style><style>._container_192pu_1{position:relative}._container_192pu_1._secondary_192pu_4{padding:7px 2px 0}._container_192pu_1._secondary_192pu_4:before{background-color:var(--color-menu-line);bottom:13px;content:" ";left:-16px;position:absolute;top:-22px;width:1px}._container_192pu_1._secondary_192pu_4:first-child:before{top:-4px}._container_192pu_1._secondary_192pu_4:last-child:before{bottom:auto;height:40px}._row_192pu_24{padding:3px 2px;position:relative}._row_192pu_24:before{background-color:var(--color-menu-line);bottom:13px;content:" ";left:-16px;position:absolute;top:-14px;width:1px}._row_192pu_24:first-child:before{top:-4px}._row_192pu_24:last-child:before{bottom:auto;height:30px}._row_192pu_24:only-child:before{height:19px}._heading_192pu_48{align-items:center;color:var(--color-menu-title);display:flex;font-weight:600;position:relative;text-transform:uppercase}._secondary_192pu_4 ._heading_192pu_48:before{background-color:var(--color-menu-line);content:" ";height:1px;left:-17px;position:absolute;top:.6em;width:10px}._link_192pu_66{color:var(--color-menu-link);line-height:1.4em;position:relative;text-decoration:none}._link_192pu_66:before{background-color:var(--color-menu-line);content:" ";height:1px;left:-17px;position:absolute;top:.6em;width:10px}._link_192pu_66._active_192pu_81{color:var(--color-menu-link-active);font-weight:700}._children_192pu_86{margin:10px 3px;padding:0 0 0 16px;position:relative}</style><link rel="stylesheet" href="/nuxt/entry.0fc56112.css" media="print" onload="this.media='all'; this.onload=null;"><script>const w=window,de=document.documentElement,knownColorSchemes=["dark","light"],preference=window.localStorage.getItem("nuxt-color-mode")||"dark";let value=preference==="system"?getColorScheme():preference;const forcedColorMode=de.getAttribute("data-color-mode-forced");forcedColorMode&&(value=forcedColorMode),addColorScheme(value),w["__NUXT_COLOR_MODE__"]={preference,value,getColorScheme,addColorScheme,removeColorScheme};function addColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.add(o):de.className+=" "+o,t&&de.setAttribute("data-"+t,e)}function removeColorScheme(e){const o=""+e+"",t="";de.classList?de.classList.remove(o):de.className=de.className.replace(new RegExp(o,"g"),""),t&&de.removeAttribute("data-"+t)}function prefersColorScheme(e){return w.matchMedia("(prefers-color-scheme"+e+")")}function getColorScheme(){if(w.matchMedia&&prefersColorScheme("").media!=="not all"){for(const e of knownColorSchemes)if(prefersColorScheme(":"+e).matches)return e}return"light"}
</script></head>
<body data-head-attrs=""><div id="__nuxt"><div class="_grid_16c5m_1" hastransition="true"><button class="_menu_toggle_16c5m_65 _button_5opgq_1 _menu_toggle_16c5m_65"><svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24" fill="#ffffff" class="_hamburger_5opgq_9"><rect x="0" y="3" width="24" height="2"></rect><rect x="0" y="11" width="24" height="2"></rect><rect x="0" y="19" width="24" height="2"></rect></svg></button><div class="_sidebar_16c5m_26"><div class="_menu_16c5m_45"><nav><div class="_logo_fvpir_8"><a href="/" class=""><div class="_title_fvpir_29">Obsidian Garden</div><div class="_subtitle_fvpir_35">by muerwre</div></a></div><div class="_section_title_fvpir_1">Cheatsheet</div><!--[--><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Blockchain</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/blockchain/common-typescript-examples" class="_link_192pu_66">Common Typescript Examples</a></div><div class="_row_192pu_24"><a href="/blockchain/smart-contracts" class="_link_192pu_66">Smart Contracts</a></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Css</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/css/automatic-grid-like-masonry-with-pure-css" class="_link_192pu_66">Automatic Grid Like Masonry With Pure CSS</a></div><div class="_row_192pu_24"><a href="/css/sass-nth-child-iterate-mixin" class="_link_192pu_66">Sass Nth Child Iterate Mixin</a></div><div class="_row_192pu_24"><a href="/css/test-if-browser-supports-css-rules" class="_link_192pu_66">Test If Browser Supports CSS Rules</a></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Docker</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/docker/building-static-pages-with-docker" class="_link_192pu_66">Building Static Pages With Docker</a></div><div class="_row_192pu_24"><a href="/docker/drone-ci" class="_link_192pu_66">Drone Ci</a></div><div class="_row_192pu_24"><a href="/docker/github-pages-with-drone-ci" class="_link_192pu_66">Github Pages With Drone Ci</a></div><div class="_row_192pu_24"><a href="/docker/private-docker-registry" class="_link_192pu_66">Private Docker Registry</a></div><div class="_row_192pu_24"><a href="/docker/refresh-containers-on-pull" class="_link_192pu_66">Refresh Containers On Pull</a></div><div class="_row_192pu_24"><a href="/docker/seed-dump-inside-docker" class="_link_192pu_66">Seed Dump Inside Docker</a></div><div class="_row_192pu_24"><a href="/docker/wait-for-mysql" class="_link_192pu_66">Wait For Mysql</a></div><div class="_row_192pu_24"><a href="/docker/wait-for-redis" class="_link_192pu_66">Wait For Redis</a></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Frontend</div><div class="_children_192pu_86"><!--[--><div class="_container_192pu_1 _secondary_192pu_4"><div class="_heading_192pu_48">React Native</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/frontend/react-native/oauth2-login" class="_link_192pu_66">OAuth2 Login</a></div><div class="_row_192pu_24"><a href="/frontend/react-native/preserve-flatlist-scroll-position-in-react-native" class="_link_192pu_66">Preserve FlatList Scroll Position In React Native</a></div><div class="_row_192pu_24"><a href="/frontend/react-native/useful-comands" class="_link_192pu_66">Useful Comands</a></div><!--]--></div></div><div class="_container_192pu_1 _secondary_192pu_4"><div class="_heading_192pu_48">React</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/frontend/react/axios-refresh-token-on-react" class="_link_192pu_66">Axios Refresh Token On React</a></div><div class="_row_192pu_24"><a href="/frontend/react/axios-with-abortcontroller" class="_link_192pu_66">Axios With AbortController</a></div><!--]--></div></div><div class="_container_192pu_1 _secondary_192pu_4"><div class="_heading_192pu_48">Vue</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/frontend/vue/adding-global-properties-to-component" class="_link_192pu_66">Adding Global Properties To Component</a></div><div class="_row_192pu_24"><a href="/frontend/vue/make-nuxt-handle-obsidian-highlights" class="_link_192pu_66">Make Nuxt Handle Obsidian Highlights</a></div><!--]--></div></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Git</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/git/force-git-to-use-https" class="_link_192pu_66">Force Git To Use HTTPS</a></div><div class="_row_192pu_24"><a href="/git/git-aliases-and-useful-commands" class="_link_192pu_66">Git Aliases And Useful Commands</a></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Graphql</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/graphql/apollo-client-pagination" class="_link_192pu_66">Apollo Client Pagination</a></div><div class="_row_192pu_24"><a href="/graphql/refresh-token-in-apollo-client" class="_link_192pu_66">Refresh Token In Apollo Client</a></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Linux</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/linux/gitea-for-git-hosting" class="_link_192pu_66">Gitea For Git Hosting</a></div><div class="_row_192pu_24"><a aria-current="page" href="/linux/google-photos-alternative-with-photoprism" class="router-link-active _active_192pu_81 _link_192pu_66">Google Photos Alternative With Photoprism</a></div><div class="_row_192pu_24"><a href="/linux/resume-or-start-screen-session" class="_link_192pu_66">Resume Or Start Screen Session</a></div><div class="_row_192pu_24"><a href="/linux/rsync-file-with-ssh" class="_link_192pu_66">Rsync File With SSH</a></div><div class="_row_192pu_24"><a href="/linux/setting-up-nginx" class="_link_192pu_66">Setting Up NGINX</a></div><div class="_row_192pu_24"><a href="/linux/ssh" class="_link_192pu_66">SSH</a></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Obsidian</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/obsidian/self-hosted-obsidian-sync-with-couchdb" class="_link_192pu_66">Self Hosted Obsidian Sync With CouchDB</a></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Sql</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/sql/mysql-and-mariadb-setup" class="_link_192pu_66">MySQL And MariaDB Setup</a></div><div class="_row_192pu_24"><a href="/sql/postgress-setup" class="_link_192pu_66">Postgress Setup</a></div><!--]--></div></div></div><div class="_row_fvpir_25"><div class="_container_192pu_1"><div class="_heading_192pu_48">Typescript</div><div class="_children_192pu_86"><!--[--><div class="_row_192pu_24"><a href="/typescript/add-global-variable-to-window" class="_link_192pu_66">Add Global Variable To Window</a></div><div class="_row_192pu_24"><a href="/typescript/flatten-object-with-periods" class="_link_192pu_66">Flatten Object With Periods</a></div><div class="_row_192pu_24"><a href="/typescript/type-guards" class="_link_192pu_66">Type Guards</a></div><!--]--></div></div></div><!--]--></nav></div></div><div class="_main_16c5m_17"><div class="_content_16c5m_93"><div class="_wrapper_vom09_1" hastransition="true"><div class="_content_vom09_14"><button class="_theme_toggle_vom09_24 _button_jz7in_1 _theme_toggle_vom09_24"><span></span></button><!--[--><!--[--><main class="_content_1gz79_1"><!--[--><h1>Google Photos Alternative With Photoprism</h1><article><div><p><!--[--><a href="https://photoprism.app/" rel="nofollow" target="_blank"><!--[-->Photo Prism<!--]--></a> is a free alternative to Google photos, can be set up with #docker.<!--]--></p><h2 id="docker-compose-file-to-run-it"><a href="#docker-compose-file-to-run-it"><!--[-->Docker compose file to run it<!--]--></a></h2><p><!--[-->Check out current <a href="https://dl.photoprism.app/docker/docker-compose.yml" rel="nofollow" target="_blank"><!--[-->example<!--]--></a> at photoprism&#39;s <a href="https://docs.photoprism.app/getting-started/docker-compose/" rel="nofollow" target="_blank"><!--[-->documentation<!--]--></a>.<!--]--></p><div class="_wrapper_1pe7v_1"><button class="_language_1pe7v_9"><span class="_icon_1pe7v_5"><svg xmlns="http://www.w3.org/2000/svg" height="12" viewbox="0 0 24 24" width="12" fill="currentColor"><path d="M0 0h24v24H0z" fill="none"></path><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"></path></svg></span><span>yaml</span></button><!--[--><pre><code><span class="line"><span class="ct-f54e9d">version</span><span class="ct-42a0da">: </span><span class="ct-578353">&#39;3.5&#39;</span></span><span class="line"></span><span class="line"><span class="ct-f54e9d">services</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">photoprism</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">container_name</span><span class="ct-42a0da">: </span><span class="ct-578353">photoprism__app</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">image</span><span class="ct-42a0da">: </span><span class="ct-578353">photoprism/photoprism:latest</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">depends_on</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da"> - </span><span class="ct-578353">mariadb</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">restart</span><span class="ct-42a0da">: </span><span class="ct-578353">unless-stopped</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">security_opt</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da"> - </span><span class="ct-578353">seccomp:unconfined</span></span><span class="line"><span class="ct-42a0da"> - </span><span class="ct-578353">apparmor:unconfined</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">ports</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da"> - </span><span class="ct-578353">2342:2342</span><span class="ct-42a0da"> </span><span class="ct-6ecc16"># HTTP port (host:container)</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">environment</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_ADMIN_PASSWORD</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;password&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_SITE_URL</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;https://service.url/&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_ORIGINALS_LIMIT</span><span class="ct-42a0da">: </span><span class="ct-9a7423">5000</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_HTTP_COMPRESSION</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;gzip&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DEBUG</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_PUBLIC</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_READONLY</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_EXPERIMENTAL</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DISABLE_CHOWN</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DISABLE_WEBDAV</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DISABLE_SETTINGS</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DISABLE_TENSORFLOW</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DISABLE_FACES</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DISABLE_CLASSIFICATION</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DARKTABLE_PRESETS</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DETECT_NSFW</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;false&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_UPLOAD_NSFW</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;true&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DATABASE_DRIVER</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;mysql&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DATABASE_SERVER</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;mariadb:3306&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DATABASE_NAME</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;photoprism&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DATABASE_USER</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;root&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_DATABASE_PASSWORD</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;insecure&quot;</span><span class="ct-42a0da"> </span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_SITE_TITLE</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;PhotoPrism&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_SITE_CAPTION</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;Browse Your Life&quot;</span></span><span class="line"><span class="ct-42a0da"> </span><span class="ct-f54e9d">PHOTOPRISM_SITE_DESCRIPTION</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;&quot;</span></span><span class="line"><span class="ct-42a0da">      </span><span class="ct-f54e9d">PHOTOPRISM_SITE_AUTHOR</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;&quot;</span></span><span class="line"><span class="ct-42a0da">      </span><span class="ct-f54e9d">HOME</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;/photoprism&quot;</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">working_dir</span><span class="ct-42a0da">: </span><span class="ct-578353">&quot;/photoprism&quot;</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">volumes</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da">      - </span><span class="ct-578353">&quot;./data/originals:/photoprism/originals&quot;</span><span class="ct-42a0da">    </span></span><span class="line"><span class="ct-42a0da">      - </span><span class="ct-578353">&quot;./data/imports:/photoprism/import&quot;</span></span><span class="line"><span class="ct-42a0da">      - </span><span class="ct-578353">&quot;./data/storage:/photoprism/storage&quot;</span></span><span class="line"><span class="ct-42a0da">  </span><span class="ct-f54e9d">mariadb</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">container_name</span><span class="ct-42a0da">: </span><span class="ct-578353">photoprism__db</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">restart</span><span class="ct-42a0da">: </span><span class="ct-578353">unless-stopped</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">image</span><span class="ct-42a0da">: </span><span class="ct-578353">mariadb:10.6</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">security_opt</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da">      - </span><span class="ct-578353">seccomp:unconfined</span></span><span class="line"><span class="ct-42a0da">      - </span><span class="ct-578353">apparmor:unconfined</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">command</span><span class="ct-42a0da">: </span><span class="ct-578353">mysqld --innodb-buffer-pool-size=128M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">volumes</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da">      - </span><span class="ct-578353">&quot;./database:/var/lib/mysql&quot;</span><span class="ct-42a0da"> </span><span class="ct-6ecc16"># Important, don&#39;t remove</span></span><span class="line"><span class="ct-42a0da">    </span><span class="ct-f54e9d">environment</span><span class="ct-42a0da">:</span></span><span class="line"><span class="ct-42a0da">      </span><span class="ct-f54e9d">MYSQL_ROOT_PASSWORD</span><span class="ct-42a0da">: </span><span class="ct-578353">insecure</span></span><span class="line"><span class="ct-42a0da">      </span><span class="ct-f54e9d">MYSQL_DATABASE</span><span class="ct-42a0da">: </span><span class="ct-578353">photoprism</span></span><span class="line"><span class="ct-42a0da">      </span><span class="ct-f54e9d">MYSQL_USER</span><span class="ct-42a0da">: </span><span class="ct-578353">photoprism</span></span><span class="line"><span class="ct-42a0da">      </span><span class="ct-f54e9d">MYSQL_PASSWORD</span><span class="ct-42a0da">: </span><span class="ct-578353">insecure</span></span></code></pre><!--]--></div><style>.ct-9a7423{color:#79C0FF}.ct-6ecc16{color:#8B949E}.ct-578353{color:#A5D6FF}.ct-42a0da{color:#C9D1D9}.ct-f54e9d{color:#7EE787}.light .ct-f54e9d{color:#268BD2}.light .ct-42a0da{color:#657B83}.light .ct-578353{color:#2AA198}.light .ct-6ecc16{color:#93A1A1}.light .ct-9a7423{color:#D33682}</style></div></article><!--]--></main><!--]--><!--]--></div><footer class="_footer_ogxvf_1 _footer_vom09_18 _footer_vom09_18"><div>btw, have a nice day</div><div class="_filler_ogxvf_9"></div><div> (2018 - 2022) <a href="https://github.com/muerwre/" rel="noopener noreferrer" target="_blank">muerwre</a></div></footer></div></div></div></div></div><script type="module">import p from "/linux/google-photos-alternative-with-photoprism/_payload.js";window.__NUXT__={...p,...((function(a,b,c,d,e,f){return {state:{"$scolor-mode":{preference:b,value:b,unknown:c,forced:a}},_errors:{},serverRendered:c,config:{public:{content:{clientDB:{isSPA:a,integrity:1668159161774},navigation:{fields:[]},base:"_content",tags:{p:"prose-p",a:"prose-a",blockquote:"prose-blockquote","code-inline":"prose-code-inline",code:"prose-code",em:"prose-em",h1:"prose-h1",h2:"prose-h2",h3:"prose-h3",h4:"prose-h4",h5:"prose-h5",h6:"prose-h6",hr:"prose-hr",img:"prose-img",ul:"prose-ul",ol:"prose-ol",li:"prose-li",strong:"prose-strong",table:"prose-table",thead:"prose-thead",tbody:"prose-tbody",td:"prose-td",th:"prose-th",tr:"prose-tr"},highlight:{theme:{default:"github-dark",light:"solarized-light"},preload:[d,"c","go","graphql","scss",d,e,"docker","typescript","javascript","nginx","bash","yaml",e],apiURL:"\u002Fapi\u002F_content\u002Fhighlight"},wsUrl:f,documentDriven:a,anchorLinks:{depth:4,exclude:[1]}}},app:{baseURL:"\u002F",buildAssetsDir:"nuxt\u002F",cdnURL:f}},prerenderedAt:1668159194983}}(false,"dark",true,"shell","sh","")))}</script><script type="module" src="/nuxt/entry.c0093fb2.js" crossorigin></script><script type="module" src="/nuxt/default.5912441a.js" crossorigin></script><script type="module" src="/nuxt/LayoutMainMenuToggle.da918a25.js" crossorigin></script><script type="module" src="/nuxt/LayoutMainMenu.dfb2002f.js" crossorigin></script><script type="module" src="/nuxt/content.a4e84429.js" crossorigin></script><script type="module" src="/nuxt/LayoutThemeToggle.7b0b764c.js" crossorigin></script><script type="module" src="/nuxt/_...slug_.6d72d9c7.js" crossorigin></script><script type="module" src="/nuxt/LayoutFooter.d1825993.js" crossorigin></script><script type="module" src="/nuxt/ProseH2.769edb46.js" crossorigin></script><script type="module" src="/nuxt/ProseP.77f0a6e2.js" crossorigin></script><script type="module" src="/nuxt/ProseA.190d27ff.js" crossorigin></script><script type="module" src="/nuxt/ProseCode.822d2388.js" crossorigin></script><script type="module" src="/nuxt/UiIconCopy.2180c5d0.js" crossorigin></script></body>
</html>