From 209f2ebf719c00a4f95fe3b15a2905692c418175 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Thu, 31 Aug 2023 14:21:48 +0000 Subject: [PATCH] Deploy photos-network/photos.network to photos-network/photos.network:gh-pages --- 404.html | 3 + atom.xml | 135 ++++++++++ de/index.html | 470 +++++++++++++++++++++++++++++++++ documentation/index.html | 331 +++++++++++++++++++++++ elasticlunr.min.js | 10 + favicon.ico | Bin 0 -> 1150 bytes icons/android-icon-192x192.png | Bin 0 -> 18266 bytes icons/android-icon-310x310.png | Bin 0 -> 30411 bytes icons/apple-touch-icon.png | Bin 0 -> 16691 bytes icons/favicon-16x16.png | Bin 0 -> 777 bytes icons/favicon-32x32.png | Bin 0 -> 1956 bytes icons/favicon.ico | Bin 0 -> 1150 bytes index.html | 470 +++++++++++++++++++++++++++++++++ js/jquery-3.6.4.min.js | 2 + js/main.js | 48 ++++ logo.png | Bin 0 -> 7123 bytes privacy/index.html | 250 ++++++++++++++++++ robots.txt | 4 + search_index.de.js | 1 + search_index.en.js | 1 + security/index.html | 252 ++++++++++++++++++ sitemap.xml | 21 ++ 22 files changed, 1998 insertions(+) create mode 100644 404.html create mode 100644 atom.xml create mode 100644 de/index.html create mode 100644 documentation/index.html create mode 100644 elasticlunr.min.js create mode 100644 favicon.ico create mode 100644 icons/android-icon-192x192.png create mode 100644 icons/android-icon-310x310.png create mode 100644 icons/apple-touch-icon.png create mode 100644 icons/favicon-16x16.png create mode 100644 icons/favicon-32x32.png create mode 100644 icons/favicon.ico create mode 100644 index.html create mode 100644 js/jquery-3.6.4.min.js create mode 100644 js/main.js create mode 100755 logo.png create mode 100644 privacy/index.html create mode 100644 robots.txt create mode 100644 search_index.de.js create mode 100644 search_index.en.js create mode 100644 security/index.html create mode 100644 sitemap.xml diff --git a/404.html b/404.html new file mode 100644 index 0000000..f8414f0 --- /dev/null +++ b/404.html @@ -0,0 +1,3 @@ + +404 Not Found +

404 Not Found

diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000..3129345 --- /dev/null +++ b/atom.xml @@ -0,0 +1,135 @@ + + + Photos.network + The main website for Photos.network a self-hosted and open source photo management service. + + + Zola + 2020-12-28T00:00:00+00:00 + https://photos.network/atom.xml + + Configuration + 2020-12-28T00:00:00+00:00 + 2020-12-28T00:00:00+00:00 + + Unknown + + + https://photos.network/documentation/ + + <h2 id="minimal-configuration">Minimal configuration</h2> +<pre data-lang="json" style="background-color:#2b303b;color:#c0c5ce;" class="language-json "><code class="language-json" data-lang="json"><span>{ +</span><span> &quot;</span><span style="color:#a3be8c;">internal_url</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">192.168.0.1</span><span>&quot;, +</span><span> &quot;</span><span style="color:#a3be8c;">external_url</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">photos.external.com</span><span>&quot;, +</span><span> &quot;</span><span style="color:#a3be8c;">clients</span><span>&quot;: [ +</span><span> { +</span><span> &quot;</span><span style="color:#a3be8c;">name</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">Frontend</span><span>&quot;, +</span><span> &quot;</span><span style="color:#a3be8c;">client_id</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">&lt;random id&gt;</span><span>&quot;, +</span><span> &quot;</span><span style="color:#a3be8c;">client_secret</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">&lt;random secret&gt;</span><span>&quot;, +</span><span> &quot;</span><span style="color:#a3be8c;">redirect_uris</span><span>&quot;: [ +</span><span> &quot;</span><span style="color:#a3be8c;">http://127.0.0.1:7778/callback</span><span>&quot; +</span><span> ] +</span><span> }, +</span><span> { +</span><span> &quot;</span><span style="color:#a3be8c;">name</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">Android App</span><span>&quot;, +</span><span> &quot;</span><span style="color:#a3be8c;">client_id</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">&lt;random id&gt;</span><span>&quot;, +</span><span> &quot;</span><span style="color:#a3be8c;">client_secret</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">&lt;random secret&gt;</span><span>&quot;, +</span><span> &quot;</span><span style="color:#a3be8c;">redirect_uris</span><span>&quot;: [ +</span><span> &quot;</span><span style="color:#a3be8c;">photosapp://authenticate</span><span>&quot; +</span><span> ] +</span><span> } +</span><span> ], +</span><span> &quot;</span><span style="color:#a3be8c;">addons</span><span>&quot;: [ +</span><span> { +</span><span> &quot;</span><span style="color:#a3be8c;">name</span><span>&quot;: &quot;</span><span style="color:#a3be8c;">api</span><span>&quot; +</span><span> } +</span><span> ] +</span><span>} +</span></code></pre> +<table><thead><tr><th>Properties</th><th>Description</th></tr></thead><tbody> +<tr><td><code>internal_url</code></td><td>Indicates the internal network address.</td></tr> +<tr><td><code>external_url</code></td><td>The external network address e.g.: used to create links for sharing.</td></tr> +<tr><td><code>clients</code></td><td>List of clients e.g. Web frontend or Android.</td></tr> +<tr><td><code>addons</code></td><td>List of addons and their custom configurations.</td></tr> +</tbody></table> +<h2 id="nginx">Nginx</h2> +<p>It is recommended to run <strong>photos.network</strong> behind a reverse proxy like nginx or HAProxy. +First of all, it increases the performance and it prevents from many attacks based on malformed http requests.</p> +<h4 id="nginx-round-robin">Nginx + Round-robin</h4> +<pre data-lang="conf" style="background-color:#2b303b;color:#c0c5ce;" class="language-conf "><code class="language-conf" data-lang="conf"><span style="color:#bf616a;">upstream </span><span>core { +</span><span> </span><span style="color:#bf616a;">server </span><span style="color:#d08770;">127.0.0.1:7777</span><span> fail_timeout=</span><span style="color:#d08770;">0</span><span>; +</span><span>} +</span><span> +</span><span style="color:#bf616a;">upstream </span><span>frontend { +</span><span> </span><span style="color:#bf616a;">server </span><span style="color:#d08770;">127.0.0.1:7778</span><span> fail_timeout=</span><span style="color:#d08770;">0</span><span>; +</span><span>} +</span><span> +</span><span style="color:#b48ead;">server </span><span>{ +</span><span> </span><span style="color:#bf616a;">listen </span><span style="color:#d08770;">80</span><span>; +</span><span> </span><span style="color:#bf616a;">return </span><span style="color:#d08770;">301 https://$host$request_uri</span><span>; +</span><span>} +</span><span> +</span><span style="color:#b48ead;">server </span><span>{ +</span><span> </span><span style="color:#bf616a;">listen </span><span style="color:#d08770;">443</span><span> ssl http2; +</span><span> </span><span style="color:#bf616a;">listen </span><span>[::]:</span><span style="color:#d08770;">443</span><span> ssl http2; +</span><span> </span><span style="color:#bf616a;">client_max_body_size </span><span style="color:#d08770;">4G</span><span>; +</span><span> +</span><span> </span><span style="color:#bf616a;">server_name </span><span>photos.example.com; +</span><span> +</span><span> </span><span style="color:#bf616a;">ssl_certificate </span><span>/etc/secrets/cert.pem; +</span><span> </span><span style="color:#bf616a;">ssl_certificate_key </span><span>/etc/secrets/key.pem; +</span><span> +</span><span style="color:#b48ead;"> location </span><span>/ { +</span><span> </span><span style="color:#bf616a;">proxy_set_header </span><span>Host </span><span style="color:#b48ead;">$http_host</span><span>; +</span><span> </span><span style="color:#bf616a;">proxy_set_header </span><span>X-Forwarded-For </span><span style="color:#b48ead;">$proxy_add_x_forwarded_for</span><span>; +</span><span> </span><span style="color:#bf616a;">proxy_set_header </span><span>X-Forwarded-Proto </span><span style="color:#b48ead;">$scheme</span><span>; +</span><span> </span><span style="color:#bf616a;">proxy_set_header </span><span>X-Real-IP </span><span style="color:#b48ead;">$remote_addr</span><span>; +</span><span> </span><span style="color:#bf616a;">proxy_redirect </span><span style="color:#d08770;">off</span><span>; +</span><span> </span><span style="color:#bf616a;">proxy_buffering </span><span style="color:#d08770;">off</span><span>; +</span><span> </span><span style="color:#bf616a;">proxy_pass </span><span style="color:#d08770;">http://frontend</span><span>; +</span><span> } +</span><span> +</span><span style="color:#b48ead;"> location </span><span>/api { +</span><span> </span><span style="color:#bf616a;">proxy_pass </span><span style="color:#d08770;">http://core</span><span>; +</span><span> } +</span><span> +</span><span style="color:#b48ead;"> location </span><span>/oauth { +</span><span> </span><span style="color:#bf616a;">proxy_pass </span><span style="color:#d08770;">http://core</span><span>; +</span><span> } +</span><span>} +</span><span> +</span></code></pre> + + + + + Privacy + 2020-12-28T00:00:00+00:00 + 2020-12-28T00:00:00+00:00 + + Unknown + + + https://photos.network/privacy/ + + <p><a href="https://photos.network">Photos.network</a> is focusing on privacy and will not track any user data.</p> + + + + + Security + 2020-12-28T00:00:00+00:00 + 2020-12-28T00:00:00+00:00 + + Unknown + + + https://photos.network/security/ + + <p>If you think that you have found a security vulnerability in Photos.network, please disclose it to us via our security e-mail address at <a href="mailto:security@photos.network">security@photos.network</a>.</p> +<p>Please do not make vulnerabilities public without notifying us and giving us at least 2 weeks to respond.</p> +<p>If you are going to write about Photos.network’s security, please get in touch, so we can make sure that all claims are correct.</p> + + + + diff --git a/de/index.html b/de/index.html new file mode 100644 index 0000000..b6e99cd --- /dev/null +++ b/de/index.html @@ -0,0 +1,470 @@ + + + + + + + + + Photos.network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+

Self-hosted photo sharing

+

Photos.network is a self-hosted, privacy first and extensible photo storage and sharing service.

+

Instead of relaying on big companies, keep full control of all access rights.

+
+
+ +
+ + +
+
+
+

Find photos and videos

+

When searching for photos and videos from the past, there are 3 major factors.

+
+ + +
+ ecommerce +
+

Taken at a specific location

+ +

People wanna share photos and videos from a vacation trip, a weekend travel or from any place they visited. They remember the approximate or even the precise position. Searching on a map or by entering locations like countries, cities or even geo positions will help users.

+
+
+ + +
+
+

Containing people or objects

+ +

Remembering other people or objects beeing present when the photo or video was taken. Label and group items by faces

+
+ ecommerce +
+ + +
+ ecommerce +
+

Browse through time

+ +

Sometimes people are just looking for a photo taken during a range of time, like a season or an annual event. All items will be tagged by the date they are taken and when added to the system.

+
+
+
+
+ + +
+
+ +
+

Roadmap

+

What is the current roadmap of the project.

+
+ + +
+
+
+
+
+
+
+ + + + +
+
+

Proof of concept

+

In the PoC the idea was put to test on real scenarious.

+
+
+
+ + +
+
+
+
+
+
+
+ + + + +
+
+

MvP

+

The Minimum viable product contains just the base features to create media items, attach photos and videos to it and browse owned items.

+
+
+
+ + +
+
+
+
+
 
+
+
+ + + + +
+
+

Sharing internal

+

Sharing albums with other accounts on the same instance.

+
+
+
+ + +
+
+
+
+
 
+
+
+ + + + + +
+
+

Sharing publicly

+

Click on a link and browse through a shared album without the need of an account.

+
+
+
+ + +
+
+
+
+
 
+
+
+ + + + + +
+
+

Reinforcement learning

+

Group and categorize photos and videos based on previous user labels to get better results.

+
+
+
+
+
+ + + +
+
+
+

Frequently asked questions

+

If you have anything else you want to ask, reach out to us.

+
+
    +
  • +
      + +
    • +

      Where comes the hype from?

      +

      With the enforcement of GDPR in May 2018 an increased interested in data privacy arrised. Also the aquiring and discontinuing of the famous image organizer Picassa left a lot of users behind.

      +
    • + +
    +
  • +
  • +
      + + +
    • +

      Why another photo management application?

      The list of photo and video gallery projects out there is amazing. Testing most of them ended in at least one of few complains:

      + +
        +
      • sluggish performance
      • +
      • hard installation and setup
      • +
      • not working with an existing folder structure
      • +
      • supporting multiple TB of photos and videos
      • +
      • process RAW files
      • +
      • lack of control
      • +
      • data privacy
      • +
      +
    • + +
    +
  • +
  • +
      + + +
    • +

      Why not use or contribute to one of the big players?

      +

      Here’s the thing: you’re the one doing the insider trading, not us. We’re just giving you the tips and some tools to make trades. We’re not doing anything wrong here.

      +
        +
      • Plex is great for browsing and viewing photos, but it doesn't offer an API for 3rd party clients.
      • +
      • Nextcloud can't work with RAW files nor with existing folder structures
      • +
      • Ownphotos not maintained anymore
      • +
      • LibrePhotos (Ownphotos fork) lacks of extensibility
      • +
      +
    • + +
    +
  • +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + diff --git a/documentation/index.html b/documentation/index.html new file mode 100644 index 0000000..eb8849c --- /dev/null +++ b/documentation/index.html @@ -0,0 +1,331 @@ + + + + + + + + + Photos.network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +

Configuration

+ +
+
+ +

Minimal configuration

+
{
+  "internal_url": "192.168.0.1",
+  "external_url": "photos.external.com",
+  "clients": [
+    {
+      "name": "Frontend",
+      "client_id": "<random id>",
+      "client_secret": "<random secret>",
+      "redirect_uris": [
+        "http://127.0.0.1:7778/callback"
+      ]
+    },
+    {
+      "name": "Android App",
+      "client_id": "<random id>",
+      "client_secret": "<random secret>",
+      "redirect_uris": [
+        "photosapp://authenticate"
+      ]
+    }
+  ],
+  "addons": [
+    {
+      "name": "api"
+    }
+  ]
+}
+
+ + + + + +
PropertiesDescription
internal_urlIndicates the internal network address.
external_urlThe external network address e.g.: used to create links for sharing.
clientsList of clients e.g. Web frontend or Android.
addonsList of addons and their custom configurations.
+

Nginx

+

It is recommended to run photos.network behind a reverse proxy like nginx or HAProxy. +First of all, it increases the performance and it prevents from many attacks based on malformed http requests.

+

Nginx + Round-robin

+
upstream core {
+  server 127.0.0.1:7777 fail_timeout=0;
+}
+
+upstream frontend {
+ server 127.0.0.1:7778 fail_timeout=0; 
+}
+
+server {
+  listen 80;
+  return 301              https://$host$request_uri;
+}
+
+server {
+  listen                  443 ssl http2;
+  listen                  [::]:443 ssl http2;
+  client_max_body_size    4G;
+
+  server_name             photos.example.com;
+
+  ssl_certificate         /etc/secrets/cert.pem;
+  ssl_certificate_key     /etc/secrets/key.pem;
+
+  location / {
+    proxy_set_header      Host $http_host;
+    proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header      X-Forwarded-Proto $scheme;
+    proxy_set_header      X-Real-IP $remote_addr;
+    proxy_redirect        off;
+    proxy_buffering       off;
+    proxy_pass            http://frontend;
+  }
+
+  location /api {
+    proxy_pass            http://core;
+  }
+
+  location /oauth {
+    proxy_pass            http://core;
+  }
+}
+
+
+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + diff --git a/elasticlunr.min.js b/elasticlunr.min.js new file mode 100644 index 0000000..79dad65 --- /dev/null +++ b/elasticlunr.min.js @@ -0,0 +1,10 @@ +/** + * elasticlunr - http://weixsong.github.io + * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.6 + * + * Copyright (C) 2017 Oliver Nightingale + * Copyright (C) 2017 Wei Song + * MIT Licensed + * @license + */ +!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o^t-&+7^Ipz9=iZq&H^bN&e$~}6 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 I@$}3-QCjNCGd`Yp5Nbf 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 literal 0 HcmV?d00001 diff --git a/icons/apple-touch-icon.png b/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6c122b8bd02bd9ec8d34ff00122c0fe937fa29c6 GIT binary patch literal 16691 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 literal 0 HcmV?d00001 diff --git a/icons/favicon-16x16.png b/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..e7305f823c6dab2ee5b234524089f4c69c24aea5 GIT binary patch literal 777 zcmV+k1NQuhP)F2y=+)^KZL^@1cM>^`i5w4zYBn_8`Ra6lAOGs z`1rpg$`*lX3hV0zw{Jhf?eBKd<}6hIfIG|StR-AC@dU9*Tb<9s;bTq7pL*lzsmbnoyA~evmiy;E^9Fu z;mxeh$@L)B)#oTL&j&yS7#W$OwY8V&>3P&0q1{px1)p!8*4AD|Mn1+qu-Q_v*;4pF zDcEc&+kOjx!(rv-&3bb3vUwT$cT@$=o;^;=t$G}e^ccbL@FX1_eXK04Q0lahV^2U+ z6+{FPK~oh@*b^vqT3GR~(9zMy@bF}e!0F5&5LjdK-Deh_j&dUJC>LG%y!{~{!fCt8 z!nl_Q{XXpWbOM1joX(6*ED;gIh=|AImBGPLak&~r)5@fwp-ZM`mt=Z&Ng5iuMAOQ| z#9#b?L<>A92hK437D9C1NY6gJZ+#`&S`zS8Xqpq$Li$#kS zBfDgpri8;0>Fsrk!*NCI_RG@K^Gw3wh?u6i+x|DfPDP_86B9l}go1*jXqvj`W_|-T zCsK0x5ew%4000?uMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o00000NkvXX Hu0mjfF92?h literal 0 HcmV?d00001 diff --git a/icons/favicon-32x32.png b/icons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..c04768d261c5c8b08678f3e519f64fb2808404a0 GIT binary patch literal 1956 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 + + + + + + + + Photos.network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+

Self-hosted photo sharing

+

Photos.network is a self-hosted, privacy first and extensible photo storage and sharing service.

+

Instead of relaying on big companies, keep full control of all access rights.

+
+
+ +
+ + +
+
+
+

Find photos and videos

+

When searching for photos and videos from the past, there are 3 major factors.

+
+ + +
+ ecommerce +
+

Taken at a specific location

+ +

People wanna share photos and videos from a vacation trip, a weekend travel or from any place they visited. They remember the approximate or even the precise position. Searching on a map or by entering locations like countries, cities or even geo positions will help users.

+
+
+ + +
+
+

Containing people or objects

+ +

Remembering other people or objects beeing present when the photo or video was taken. Label and group items by faces

+
+ ecommerce +
+ + +
+ ecommerce +
+

Browse through time

+ +

Sometimes people are just looking for a photo taken during a range of time, like a season or an annual event. All items will be tagged by the date they are taken and when added to the system.

+
+
+
+
+ + +
+
+ +
+

Roadmap

+

What is the current roadmap of the project.

+
+ + +
+
+
+
+
+
+
+ + + + +
+
+

Proof of concept

+

In the PoC the idea was put to test on real scenarious.

+
+
+
+ + +
+
+
+
+
+
+
+ + + + +
+
+

MvP

+

The Minimum viable product contains just the base features to create media items, attach photos and videos to it and browse owned items.

+
+
+
+ + +
+
+
+
+
 
+
+
+ + + + +
+
+

Sharing internal

+

Sharing albums with other accounts on the same instance.

+
+
+
+ + +
+
+
+
+
 
+
+
+ + + + + +
+
+

Sharing publicly

+

Click on a link and browse through a shared album without the need of an account.

+
+
+
+ + +
+
+
+
+
 
+
+
+ + + + + +
+
+

Reinforcement learning

+

Group and categorize photos and videos based on previous user labels to get better results.

+
+
+
+
+
+ + + +
+
+
+

Frequently asked questions

+

If you have anything else you want to ask, reach out to us.

+
+
    +
  • +
      + +
    • +

      Where comes the hype from?

      +

      With the enforcement of GDPR in May 2018 an increased interested in data privacy arrised. Also the aquiring and discontinuing of the famous image organizer Picassa left a lot of users behind.

      +
    • + +
    +
  • +
  • +
      + + +
    • +

      Why another photo management application?

      The list of photo and video gallery projects out there is amazing. Testing most of them ended in at least one of few complains:

      + +
        +
      • sluggish performance
      • +
      • hard installation and setup
      • +
      • not working with an existing folder structure
      • +
      • supporting multiple TB of photos and videos
      • +
      • process RAW files
      • +
      • lack of control
      • +
      • data privacy
      • +
      +
    • + +
    +
  • +
  • +
      + + +
    • +

      Why not use or contribute to one of the big players?

      +

      Here’s the thing: you’re the one doing the insider trading, not us. We’re just giving you the tips and some tools to make trades. We’re not doing anything wrong here.

      +
        +
      • Plex is great for browsing and viewing photos, but it doesn't offer an API for 3rd party clients.
      • +
      • Nextcloud can't work with RAW files nor with existing folder structures
      • +
      • Ownphotos not maintained anymore
      • +
      • LibrePhotos (Ownphotos fork) lacks of extensibility
      • +
      +
    • + +
    +
  • +
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + diff --git a/js/jquery-3.6.4.min.js b/js/jquery-3.6.4.min.js new file mode 100644 index 0000000..0de648e --- /dev/null +++ b/js/jquery-3.6.4.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.4 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.4",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssHas=ce(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssHas||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0ViK) 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 + + + + + + + + Photos.network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +

Privacy

+ +
+
+ +

Photos.network is focusing on privacy and will not track any user data.

+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..d1c9dc8 --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Disallow: +Allow: / +Sitemap: https://photos.network/sitemap.xml diff --git a/search_index.de.js b/search_index.de.js new file mode 100644 index 0000000..9a01cfa --- /dev/null +++ b/search_index.de.js @@ -0,0 +1 @@ +window.searchIndex = {"fields":["title","description","path","body"],"pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5","index":{"body":{"root":{"docs":{},"df":0,"1":{"docs":{},"df":0,"9":{"docs":{},"df":0,"2":{"docs":{},"df":0,".":{"docs":{},"df":0,"1":{"docs":{},"df":0,"6":{"docs":{},"df":0,"8":{"docs":{},"df":0,".":{"docs":{},"df":0,"0":{"docs":{},"df":0,".":{"docs":{},"df":0,"1":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}}}}},"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/documentation/":{"tf":1.4142135623730951}},"df":1}}}}}}}},"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"e":{"docs":{},"df":0,"x":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"_":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}}}}}},"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"s":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/security/":{"tf":1.4142135623730951}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"_":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,".":{"docs":{},"df":0,"e":{"docs":{},"df":0,"x":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,".":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}}}}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/":{"tf":1.4142135623730951},"https://photos.network/privacy/":{"tf":1.0},"https://photos.network/security/":{"tf":1.0}},"df":3}}}}}}}}}}}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/":{"tf":1.0},"https://photos.network/privacy/":{"tf":2.0}},"df":2}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":2.0}},"df":1}}},"l":{"docs":{},"df":0,"f":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}},"v":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.4142135623730951}},"df":1}}}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}}}}},"description":{"root":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,".":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}}}}}}}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.4142135623730951}},"df":1}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.4142135623730951}},"df":1}}}}},"v":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}}}}},"path":{"root":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,".":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}}}}}}}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.7320508075688772}},"df":1}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.7320508075688772}},"df":1}}}}},"v":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}}}}},"title":{"root":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}}}}},"documentStore":{"save":true,"docs":{"https://photos.network/":{"body":"Photos.network is a self-hosted, privacy first photo storage and sharing service.\n","description":"Photos.network","id":"https://photos.network/","path":"/","title":"Landing"},"https://photos.network/documentation/":{"body":"Minimal configuration\n{\n \"internal_url\": \"192.168.0.1\",\n \"external_url\": \"photos.external.com\",\n ","description":"This is fun","id":"https://photos.network/documentation/","path":"/documentation/","title":"Configuration"},"https://photos.network/privacy/":{"body":"Photos.network is focusing on privacy and will not track any user data.\n","description":"Privacy policy for the website and mobile apps","id":"https://photos.network/privacy/","path":"/privacy/","title":"Privacy"},"https://photos.network/security/":{"body":"If you think that you have found a security vulnerability in Photos.network, please disclose it to u","description":"How to handle found security vulnerabilities","id":"https://photos.network/security/","path":"/security/","title":"Security"}},"docInfo":{"https://photos.network/":{"body":9,"description":1,"path":0,"title":1},"https://photos.network/documentation/":{"body":6,"description":1,"path":1,"title":1},"https://photos.network/privacy/":{"body":6,"description":5,"path":1,"title":1},"https://photos.network/security/":{"body":8,"description":4,"path":1,"title":1}},"length":4},"lang":"English"}; \ No newline at end of file diff --git a/search_index.en.js b/search_index.en.js new file mode 100644 index 0000000..9a01cfa --- /dev/null +++ b/search_index.en.js @@ -0,0 +1 @@ +window.searchIndex = {"fields":["title","description","path","body"],"pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5","index":{"body":{"root":{"docs":{},"df":0,"1":{"docs":{},"df":0,"9":{"docs":{},"df":0,"2":{"docs":{},"df":0,".":{"docs":{},"df":0,"1":{"docs":{},"df":0,"6":{"docs":{},"df":0,"8":{"docs":{},"df":0,".":{"docs":{},"df":0,"0":{"docs":{},"df":0,".":{"docs":{},"df":0,"1":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}}}}},"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/documentation/":{"tf":1.4142135623730951}},"df":1}}}}}}}},"d":{"docs":{},"df":0,"a":{"docs":{},"df":0,"t":{"docs":{},"df":0,"a":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"i":{"docs":{},"df":0,"s":{"docs":{},"df":0,"c":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"e":{"docs":{},"df":0,"x":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"_":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}}}}}},"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"s":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/security/":{"tf":1.4142135623730951}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,"_":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"i":{"docs":{},"df":0,"m":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,".":{"docs":{},"df":0,"e":{"docs":{},"df":0,"x":{"docs":{},"df":0,"t":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{},"df":0,"n":{"docs":{},"df":0,"a":{"docs":{},"df":0,"l":{"docs":{},"df":0,".":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}}}}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/":{"tf":1.4142135623730951},"https://photos.network/privacy/":{"tf":1.0},"https://photos.network/security/":{"tf":1.0}},"df":3}}}}}}}}}}}}},"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/":{"tf":1.0},"https://photos.network/privacy/":{"tf":2.0}},"df":2}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":2.0}},"df":1}}},"l":{"docs":{},"df":0,"f":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}},"r":{"docs":{},"df":0,"v":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"r":{"docs":{},"df":0,"e":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"g":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}}}},"t":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"u":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1,"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}},"v":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.4142135623730951}},"df":1}}}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}}}}},"description":{"root":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,".":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}}}}}}}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.4142135623730951}},"df":1}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.4142135623730951}},"df":1}}}}},"v":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}}}}},"path":{"root":{"docs":{},"df":0,"a":{"docs":{},"df":0,"p":{"docs":{},"df":0,"p":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"d":{"docs":{},"df":0,"o":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{},"df":0,"n":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"f":{"docs":{},"df":0,"o":{"docs":{},"df":0,"u":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}},"u":{"docs":{},"df":0,"n":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}},"h":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"m":{"docs":{},"df":0,"o":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{},"df":0,"l":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"p":{"docs":{},"df":0,"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"t":{"docs":{},"df":0,"o":{"docs":{},"df":0,"s":{"docs":{},"df":0,".":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"t":{"docs":{},"df":0,"w":{"docs":{},"df":0,"o":{"docs":{},"df":0,"r":{"docs":{},"df":0,"k":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}}}}}}}}}}},"o":{"docs":{},"df":0,"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}},"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.7320508075688772}},"df":1}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.7320508075688772}},"df":1}}}}},"v":{"docs":{},"df":0,"u":{"docs":{},"df":0,"l":{"docs":{},"df":0,"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"b":{"docs":{},"df":0,"s":{"docs":{},"df":0,"i":{"docs":{},"df":0,"t":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}}}}},"title":{"root":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"i":{"docs":{},"df":0,"g":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/documentation/":{"tf":1.0}},"df":1}}}}}}}},"l":{"docs":{},"df":0,"a":{"docs":{},"df":0,"n":{"docs":{},"df":0,"d":{"docs":{"https://photos.network/":{"tf":1.0}},"df":1}}}},"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{},"df":0,"a":{"docs":{},"df":0,"c":{"docs":{},"df":0,"i":{"docs":{"https://photos.network/privacy/":{"tf":1.0}},"df":1}}}}}}},"s":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"https://photos.network/security/":{"tf":1.0}},"df":1}}}}}}}},"documentStore":{"save":true,"docs":{"https://photos.network/":{"body":"Photos.network is a self-hosted, privacy first photo storage and sharing service.\n","description":"Photos.network","id":"https://photos.network/","path":"/","title":"Landing"},"https://photos.network/documentation/":{"body":"Minimal configuration\n{\n \"internal_url\": \"192.168.0.1\",\n \"external_url\": \"photos.external.com\",\n ","description":"This is fun","id":"https://photos.network/documentation/","path":"/documentation/","title":"Configuration"},"https://photos.network/privacy/":{"body":"Photos.network is focusing on privacy and will not track any user data.\n","description":"Privacy policy for the website and mobile apps","id":"https://photos.network/privacy/","path":"/privacy/","title":"Privacy"},"https://photos.network/security/":{"body":"If you think that you have found a security vulnerability in Photos.network, please disclose it to u","description":"How to handle found security vulnerabilities","id":"https://photos.network/security/","path":"/security/","title":"Security"}},"docInfo":{"https://photos.network/":{"body":9,"description":1,"path":0,"title":1},"https://photos.network/documentation/":{"body":6,"description":1,"path":1,"title":1},"https://photos.network/privacy/":{"body":6,"description":5,"path":1,"title":1},"https://photos.network/security/":{"body":8,"description":4,"path":1,"title":1}},"length":4},"lang":"English"}; \ No newline at end of file diff --git a/security/index.html b/security/index.html new file mode 100644 index 0000000..9ebf916 --- /dev/null +++ b/security/index.html @@ -0,0 +1,252 @@ + + + + + + + + + Photos.network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +

Security

+ +
+
+ +

If you think that you have found a security vulnerability in Photos.network, please disclose it to us via our security e-mail address at security@photos.network.

+

Please do not make vulnerabilities public without notifying us and giving us at least 2 weeks to respond.

+

If you are going to write about Photos.network’s security, please get in touch, so we can make sure that all claims are correct.

+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..cdd9896 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,21 @@ + + + + https://photos.network/ + + + https://photos.network/de/ + + + https://photos.network/documentation/ + 2020-12-28 + + + https://photos.network/privacy/ + 2020-12-28 + + + https://photos.network/security/ + 2020-12-28 + +