Page Not Found | TiBillet
-
+
diff --git a/assets/js/3f20655a.4b881a4f.js b/assets/js/3f20655a.4b881a4f.js
deleted file mode 100644
index ae18c320..00000000
--- a/assets/js/3f20655a.4b881a4f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocumentation_v_2=self.webpackChunkdocumentation_v_2||[]).push([[8703],{3967:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var i=t(4848),r=t(8453);const s={sidebar_position:100,slug:"docker_install",title:"Self hosted",description:"Installation de la billetterie f\xe9d\xe9r\xe9 via Docker.",keywords:["cashless","billetterie","ticketing"],wiktags:["cashless","billetterie","ticketing"],authors:"jonas"},o="Self-hosted TiBillet",a={id:"install/server_install",title:"Self hosted",description:"Installation de la billetterie f\xe9d\xe9r\xe9 via Docker.",source:"@site/docs/install/server_install.md",sourceDirName:"install",slug:"/install/docker_install",permalink:"/docs/install/docker_install",draft:!1,unlisted:!1,editUrl:"https://github.com/TiBillet/documentation/tree/main/tibillet/docs/install/server_install.md",tags:[],version:"current",sidebarPosition:100,frontMatter:{sidebar_position:100,slug:"docker_install",title:"Self hosted",description:"Installation de la billetterie f\xe9d\xe9r\xe9 via Docker.",keywords:["cashless","billetterie","ticketing"],wiktags:["cashless","billetterie","ticketing"],authors:"jonas"},sidebar:"tutorialSidebar",previous:{title:"Raspberry Box - Software",permalink:"/docs/install/raspberry_soft"},next:{title:"API",permalink:"/docs/category/api"}},l={},d=[{value:"Create .env file and fill it with your own variable",id:"create-env-file-and-fill-it-with-your-own-variable",level:2},{value:"Generate Fernet key and django secret key",id:"generate-fernet-key-and-django-secret-key",level:3},{value:"Prepare the rocket launch",id:"prepare-the-rocket-launch",level:3},{value:"Launch the rocket !",id:"launch-the-rocket-",level:3}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"self-hosted-tibillet",children:"Self-hosted TiBillet"}),"\n",(0,i.jsxs)(n.admonition,{type:"danger",children:[(0,i.jsx)(n.p,{children:"Since January 1, 2018, in order to combat VAT fraud, all VAT-registered professionals recording\ncustomer payments using one of these software or systems are required to use secure, certified hardware."}),(0,i.jsxs)(n.p,{children:["A measure enshrined in\n",(0,i.jsx)(n.a,{href:"https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042914666",children:"Article 286 3\xb0 bis of the General Tax Code"}),"\nand initially stemming from the 2016 Finance Act,\nwhen April became involved in promoting and defending open-source\nsoftware with cashiering functions."]}),(0,i.jsx)(n.p,{children:"If you're using TiBillet's SaaS model, you don't need to worry about any of this : We provide you with the certificate.\nContact us !"}),(0,i.jsx)(n.p,{children:"But I imagine that if you're here, it's to install it yourself: here you are informed!"}),(0,i.jsx)(n.p,{children:"More information here (in french) :"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.economie.gouv.fr/entreprises/professionnels-logiciels-caisse",children:"https://www.economie.gouv.fr/entreprises/professionnels-logiciels-caisse"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.april.org/reglementation-des-systemes-de-caisse-les-logiciels-libres-de-mieux-en-mieux-pris-en-compte-par-berc",children:"https://www.april.org/reglementation-des-systemes-de-caisse-les-logiciels-libres-de-mieux-en-mieux-pris-en-compte-par-berc"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042914666",children:"https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042914666"})}),"\n"]})]}),"\n",(0,i.jsx)(n.h1,{id:"introduction-to-engines",children:"Introduction to Engines"}),"\n",(0,i.jsx)(n.p,{children:"Tibillet is a software suite composed of several interoperable building blocks. The engines are :"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/TiBillet/Fedow",children:"Fedow"}),": Federated and open wallet, the federation engine. A PoA and Rsa key based\nblockchain to\nshare membership assets, local currencies and\ntime for several Lespass and LaBoutik instances."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/TiBillet/Lespass",children:"Lespass"}),": Ticketing, booking, membership and landing page engines. Usefull too\nfor refill online with self scanned qrcode unique on each card."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/TiBillet/LaBoutik",children:"LaBoutik"}),": Cash register, cashless system with RFID / NFC chip and order-taking\nsystem."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"To get the full functionality of TiBillet, you need to install these three engines."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["One ",(0,i.jsx)(n.strong,{children:"Fedow"})," for multiple locations (RSA based PoA blockchain)"]}),"\n",(0,i.jsxs)(n.li,{children:["One ",(0,i.jsx)(n.strong,{children:"Lespass"})," for multiple locations (Django multi-tenant)"]}),"\n",(0,i.jsxs)(n.li,{children:["One ",(0,i.jsx)(n.strong,{children:"Laboutik"})," per location, which connects to a fedow and a lespass to join a federation."]}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{title:"Exemple",type:"note",children:(0,i.jsxs)(n.p,{children:["if you want to use the same NFC card to manage cashless at 2 festivals and 3 community caf\xe9s, you'll need 5\n",(0,i.jsx)(n.strong,{children:"LabouTik"}),", but only one ",(0,i.jsx)(n.strong,{children:"Fedow"})," for the federated asset, and one ",(0,i.jsx)(n.strong,{children:"Lespass"})," for the webpage of each venue.\nThe same applies if you want to manage a co-working subscription for a\ngroup of ",(0,i.jsx)(n.em,{children:"third place"})," in a given city/region/department."]})}),"\n",(0,i.jsx)(n.h1,{id:"requirements-",children:"Requirements :"}),"\n",(0,i.jsxs)(n.p,{children:["For security and performance reasons, we recommend that you separate the ",(0,i.jsx)(n.strong,{children:"Lespass"})," public area from the ",(0,i.jsx)(n.strong,{children:"LaBoutik"}),"\ncheckout and ",(0,i.jsx)(n.strong,{children:"Fedow"})," federation engines."]}),"\n",(0,i.jsx)(n.p,{children:"For dev' and test purpose, you can install everything on one VPS. Here the minimal requirements :"}),"\n",(0,i.jsx)(n.p,{children:"A linux server with :"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"2 vCpu / 4Go Ram"}),"\n",(0,i.jsx)(n.li,{children:"Docker & Compose"}),"\n",(0,i.jsx)(n.li,{children:"1 domain with wildcard capacity"}),"\n",(0,i.jsx)(n.li,{children:"A Reverse proxy who handle 443 and 80 port (we use Traefik)"}),"\n",(0,i.jsxs)(n.li,{children:["A valid Stripe account with ",(0,i.jsx)(n.em,{children:"Stripe connect"})]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"You can find some ressource (in french) here :"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://codecommun.coop/blog/sysadmin-mon-chaton-part1",children:"https://codecommun.coop/blog/sysadmin-mon-chaton-part1"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://codecommun.coop/blog/sysadmin-mon-chaton-part2",children:"https://codecommun.coop/blog/sysadmin-mon-chaton-part2"})}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"If you're ready for adventure, create a new folder \"TiBillet\", and let's start by installing a Fedow!"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"mkdir TiBillet && cd TiBillet\n"})}),"\n",(0,i.jsx)(n.h1,{id:"fedow--one-ring-to-rule-them-all",children:"Fedow : One ring to rule them all"}),"\n",(0,i.jsx)(n.h2,{id:"create-env-file-and-fill-it-with-your-own-variable",children:"Create .env file and fill it with your own variable"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'# Create .env and fill with :\nSECRET_KEY="" # see below to create one\nFERNET_KEY="" # see below to create one\nDOMAIN="" # ex : fedow.domain.com\nSTRIPE_KEY="" # from your stripe account\n'})}),"\n",(0,i.jsx)(n.h3,{id:"generate-fernet-key-and-django-secret-key",children:"Generate Fernet key and django secret key"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Generate fernet key with the fedow image :\n# Choose one line and fill the .env file\ndocker run --rm tibillet/fedow:alpha1.2 poetry run python3 -c \"from cryptography.fernet import Fernet; print('\\n'.join([Fernet.generate_key().decode('utf-8') for i in range(0,30)]))\"\n\n# Generate django secret key with the fedow image :\n# Choose one line and fill the .env file\ndocker run --rm tibillet/fedow:alpha1.2 poetry run python3 -c \"from django.core.management.utils import get_random_secret_key; print('\\n'.join([get_random_secret_key() for i in range(0,30)]))\"\n"})}),"\n",(0,i.jsx)(n.h3,{id:"prepare-the-rocket-launch",children:"Prepare the rocket launch"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Create frontend and backend network with docker\ndocker network create frontend\ndocker network create fedow_backend\n\n# prepare the logs, assets and database folder\nmkdir logs www database\n"})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:"services:\n fedow_django:\n image: tibillet/fedow:latest\n container_name: fedow_django\n hostname: fedow_django\n restart: always\n env_file: .env\n user: fedow\n volumes:\n - ./database:/home/fedow/Fedow/database\n - ./www:/home/fedow/Fedow/www\n - ./logs:/home/fedow/Fedow/logs\n networks:\n - fedow_backend\n\n fedow_nginx:\n image: nginx:latest\n restart: always\n container_name: fedow_nginx\n hostname: fedow_nginx\n volumes:\n - ./www:/www\n - ./logs:/logs\n - ./nginx:/etc/nginx/conf.d\n depends_on:\n - fedow_django\n links:\n - fedow_django:fedow_django\n labels:\n - traefik.enable=true\n - traefik.docker.network=frontend\n - traefik.http.routers.fedow_nginx.tls.certresolver=myresolver\n - traefik.http.routers.fedow_nginx.rule=Host(`$DOMAIN`)\n networks:\n - frontend\n - fedow_backend\n\n\nnetworks:\n frontend:\n external: true\n fedow_backend:\n"})}),"\n",(0,i.jsx)(n.h3,{id:"launch-the-rocket-",children:"Launch the rocket !"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docker compose up -d \n# To see the logs :\ndocker compose logs -f \n"})}),"\n",(0,i.jsxs)(n.p,{children:["And check to ",(0,i.jsx)(n.code,{children:"https:///dashbord"})]}),"\n",(0,i.jsx)(n.p,{children:"Congratulation !"})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var i=t(6540);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/3f20655a.b2cd48fe.js b/assets/js/3f20655a.b2cd48fe.js
new file mode 100644
index 00000000..cf969c35
--- /dev/null
+++ b/assets/js/3f20655a.b2cd48fe.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocumentation_v_2=self.webpackChunkdocumentation_v_2||[]).push([[8703],{3967:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=t(4848),s=t(8453);const r={sidebar_position:100,slug:"docker_install",title:"Self hosted",description:"self hosted TiBillet tools with docker",keywords:["cashless","billetterie","ticketing"],wiktags:["cashless","billetterie","ticketing"],authors:"jonas"},o="Self-hosted TiBillet",l={id:"install/server_install",title:"Self hosted",description:"self hosted TiBillet tools with docker",source:"@site/docs/install/server_install.md",sourceDirName:"install",slug:"/install/docker_install",permalink:"/docs/install/docker_install",draft:!1,unlisted:!1,editUrl:"https://github.com/TiBillet/documentation/tree/main/tibillet/docs/install/server_install.md",tags:[],version:"current",sidebarPosition:100,frontMatter:{sidebar_position:100,slug:"docker_install",title:"Self hosted",description:"self hosted TiBillet tools with docker",keywords:["cashless","billetterie","ticketing"],wiktags:["cashless","billetterie","ticketing"],authors:"jonas"},sidebar:"tutorialSidebar",previous:{title:"Raspberry Box - Software",permalink:"/docs/install/raspberry_soft"},next:{title:"API",permalink:"/docs/category/api"}},a={},d=[{value:"Create .env file and fill it with your own variable",id:"create-env-file-and-fill-it-with-your-own-variable",level:2},{value:"Generate Fernet key and django secret key",id:"generate-fernet-key-and-django-secret-key",level:3},{value:"Prepare the rocket launch",id:"prepare-the-rocket-launch",level:3},{value:"create the docker-compose.yml file",id:"create-the-docker-composeyml-file",level:4},{value:"Launch the rocket !",id:"launch-the-rocket-",level:3}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"self-hosted-tibillet",children:"Self-hosted TiBillet"}),"\n",(0,i.jsxs)(n.admonition,{type:"danger",children:[(0,i.jsx)(n.p,{children:"Since January 1, 2018, in order to combat VAT fraud, all VAT-registered professionals recording\ncustomer payments using one of these software or systems are required to use secure, certified hardware."}),(0,i.jsxs)(n.p,{children:["A measure enshrined in\n",(0,i.jsx)(n.a,{href:"https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042914666",children:"Article 286 3\xb0 bis of the General Tax Code"}),"\nand initially stemming from the 2016 Finance Act,\nwhen April became involved in promoting and defending open-source\nsoftware with cashiering functions."]}),(0,i.jsx)(n.p,{children:"If you're using TiBillet's SaaS model, you don't need to worry about any of this : We provide you with the certificate.\nContact us !"}),(0,i.jsx)(n.p,{children:"But I imagine that if you're here, it's to install it yourself: here you are informed!"}),(0,i.jsx)(n.p,{children:"More information here (in french) :"}),(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.economie.gouv.fr/entreprises/professionnels-logiciels-caisse",children:"https://www.economie.gouv.fr/entreprises/professionnels-logiciels-caisse"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.april.org/reglementation-des-systemes-de-caisse-les-logiciels-libres-de-mieux-en-mieux-pris-en-compte-par-berc",children:"https://www.april.org/reglementation-des-systemes-de-caisse-les-logiciels-libres-de-mieux-en-mieux-pris-en-compte-par-berc"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042914666",children:"https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000042914666"})}),"\n"]})]}),"\n",(0,i.jsx)(n.h1,{id:"introduction-to-engines",children:"Introduction to Engines"}),"\n",(0,i.jsx)(n.p,{children:"Tibillet is a software suite composed of several interoperable building blocks. The engines are :"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/TiBillet/Fedow",children:"Fedow"}),": Federated and open wallet, the federation engine. A PoA and Rsa key based\nblockchain to\nshare membership assets, local currencies and\ntime for several Lespass and LaBoutik instances."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/TiBillet/Lespass",children:"Lespass"}),": Ticketing, booking, membership and landing page engines. Usefull too\nfor refill online with self scanned qrcode unique on each card."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://github.com/TiBillet/LaBoutik",children:"LaBoutik"}),": Cash register, cashless system with RFID / NFC chip and order-taking\nsystem."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"To get the full functionality of TiBillet, you need to install these three engines."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["One ",(0,i.jsx)(n.strong,{children:"Fedow"})," for multiple locations (RSA based PoA blockchain)"]}),"\n",(0,i.jsxs)(n.li,{children:["One ",(0,i.jsx)(n.strong,{children:"Lespass"})," for multiple locations (Django multi-tenant)"]}),"\n",(0,i.jsxs)(n.li,{children:["One ",(0,i.jsx)(n.strong,{children:"Laboutik"})," per location, which connects to a fedow and a lespass to join a federation."]}),"\n"]}),"\n",(0,i.jsx)(n.admonition,{title:"Exemple",type:"note",children:(0,i.jsxs)(n.p,{children:["if you want to use the same NFC card to manage cashless at 2 festivals and 3 community caf\xe9s, you'll need 5\n",(0,i.jsx)(n.strong,{children:"LabouTik"}),", but only one ",(0,i.jsx)(n.strong,{children:"Fedow"})," for the federated asset, and one ",(0,i.jsx)(n.strong,{children:"Lespass"})," for the webpage of each venue.\nThe same applies if you want to manage a co-working subscription for a\ngroup of ",(0,i.jsx)(n.em,{children:"third place"})," in a given city/region/department."]})}),"\n",(0,i.jsx)(n.h1,{id:"requirements-",children:"Requirements :"}),"\n",(0,i.jsxs)(n.p,{children:["For security and performance reasons, we recommend that you separate the ",(0,i.jsx)(n.strong,{children:"Lespass"})," public area from the ",(0,i.jsx)(n.strong,{children:"LaBoutik"}),"\ncheckout and ",(0,i.jsx)(n.strong,{children:"Fedow"})," federation engines."]}),"\n",(0,i.jsx)(n.p,{children:"For dev' and test purpose, you can install everything on one VPS. Here the minimal requirements :"}),"\n",(0,i.jsx)(n.p,{children:"A linux server with :"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"2 vCpu / 4Go Ram"}),"\n",(0,i.jsx)(n.li,{children:"Docker & Compose"}),"\n",(0,i.jsx)(n.li,{children:"1 domain with wildcard capacity"}),"\n",(0,i.jsx)(n.li,{children:"A Reverse proxy who handle 443 and 80 port (we use Traefik)"}),"\n",(0,i.jsxs)(n.li,{children:["A valid Stripe account with ",(0,i.jsx)(n.em,{children:"Stripe connect"})]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"You can find some ressource (in french) here :"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://codecommun.coop/blog/sysadmin-mon-chaton-part1",children:"https://codecommun.coop/blog/sysadmin-mon-chaton-part1"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://codecommun.coop/blog/sysadmin-mon-chaton-part2",children:"https://codecommun.coop/blog/sysadmin-mon-chaton-part2"})}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"If you're ready for adventure, create a new folder \"TiBillet\", and let's start by installing a Fedow!"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"mkdir TiBillet && cd TiBillet\n"})}),"\n",(0,i.jsx)(n.h1,{id:"fedow--one-ring-to-rule-them-all",children:"Fedow : One ring to rule them all"}),"\n",(0,i.jsx)(n.h2,{id:"create-env-file-and-fill-it-with-your-own-variable",children:"Create .env file and fill it with your own variable"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'# Create .env and fill with :\nSECRET_KEY="" # see below to create one\nFERNET_KEY="" # see below to create one\nDOMAIN="" # ex : fedow.domain.com\nSTRIPE_KEY="" # from your stripe account\n'})}),"\n",(0,i.jsx)(n.h3,{id:"generate-fernet-key-and-django-secret-key",children:"Generate Fernet key and django secret key"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Generate fernet key with the fedow image :\n# Choose one line and fill the .env file\ndocker run --rm tibillet/fedow:alpha1.2 poetry run python3 -c \"from cryptography.fernet import Fernet; print('\\n'.join([Fernet.generate_key().decode('utf-8') for i in range(0,30)]))\"\n\n# Generate django secret key with the fedow image :\n# Choose one line and fill the .env file\ndocker run --rm tibillet/fedow:alpha1.2 poetry run python3 -c \"from django.core.management.utils import get_random_secret_key; print('\\n'.join([get_random_secret_key() for i in range(0,30)]))\"\n"})}),"\n",(0,i.jsx)(n.h3,{id:"prepare-the-rocket-launch",children:"Prepare the rocket launch"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"# Create frontend and backend network with docker\ndocker network create frontend\ndocker network create fedow_backend\n\n# prepare the logs, assets and database folder\nmkdir logs www database\n"})}),"\n",(0,i.jsxs)(n.h4,{id:"create-the-docker-composeyml-file",children:["create the ",(0,i.jsx)(n.code,{children:"docker-compose.yml"})," file"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:"services:\n fedow_django:\n image: tibillet/fedow:latest\n container_name: fedow_django\n hostname: fedow_django\n restart: always\n env_file: .env\n user: fedow\n volumes:\n - ./database:/home/fedow/Fedow/database\n - ./www:/home/fedow/Fedow/www\n - ./logs:/home/fedow/Fedow/logs\n networks:\n - fedow_backend\n\n fedow_nginx:\n image: nginx:latest\n restart: always\n container_name: fedow_nginx\n hostname: fedow_nginx\n volumes:\n - ./www:/www\n - ./logs:/logs\n - ./nginx:/etc/nginx/conf.d\n depends_on:\n - fedow_django\n links:\n - fedow_django:fedow_django\n labels:\n - traefik.enable=true\n - traefik.docker.network=frontend\n - traefik.http.routers.fedow_nginx.tls.certresolver=myresolver\n - traefik.http.routers.fedow_nginx.rule=Host(`$DOMAIN`)\n networks:\n - frontend\n - fedow_backend\n\n\nnetworks:\n frontend:\n external: true\n fedow_backend:\n"})}),"\n",(0,i.jsx)(n.h3,{id:"launch-the-rocket-",children:"Launch the rocket !"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"docker compose up -d \n# To see the logs :\ndocker compose logs -f \n"})}),"\n",(0,i.jsxs)(n.p,{children:["And check to ",(0,i.jsx)(n.code,{children:"https:///dashboard"})]}),"\n",(0,i.jsx)(n.p,{children:"Congratulation !"}),"\n",(0,i.jsx)(n.h1,{id:"lespass--multi-tenant-engine-for-membership-ticketing-and-online-cashless-refill",children:"Lespass : Multi tenant engine for membership, ticketing and online cashless refill."})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var i=t(6540);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/935f2afb.3b25caf4.js b/assets/js/935f2afb.3e897fbf.js
similarity index 58%
rename from assets/js/935f2afb.3b25caf4.js
rename to assets/js/935f2afb.3e897fbf.js
index 05835f62..cfd42033 100644
--- a/assets/js/935f2afb.3b25caf4.js
+++ b/assets/js/935f2afb.3e897fbf.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkdocumentation_v_2=self.webpackChunkdocumentation_v_2||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Presentation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/presentation/introduction","docId":"presentation/intro","unlisted":false},{"type":"link","label":"Uses","href":"/docs/presentation/usages","docId":"presentation/usage","unlisted":false},{"type":"link","label":"Demonstration","href":"/docs/presentation/demonstration","docId":"presentation/Demonstration","unlisted":false},{"type":"link","label":"Philosophy","href":"/docs/presentation/philosophie","docId":"presentation/philo","unlisted":false},{"type":"link","label":"Prices, conditions and licenses","href":"/docs/presentation/tarifs","docId":"presentation/eco","unlisted":false},{"type":"link","label":"Logos","href":"/docs/presentation/logos","docId":"presentation/logo","unlisted":false}],"href":"/docs/category/pr\xe9sentation"},{"type":"category","label":"User documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Cashless","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android application","href":"/docs/Utilisateur/Cashless/android","docId":"Utilisateur/Cashless/1 Application android","unlisted":false},{"type":"link","label":"Primary Cards","href":"/docs/Utilisateur/Cashless/admin_add_primary","docId":"Utilisateur/Cashless/2 CartePrimaire","unlisted":false},{"type":"link","label":"Points of sale","href":"/docs/Utilisateur/Cashless/admin_add_pos","docId":"Utilisateur/Cashless/12 PointVente","unlisted":false},{"type":"link","label":"Article categories","href":"/docs/Utilisateur/Cashless/admin_add_categorie","docId":"Utilisateur/Cashless/15 Categories","unlisted":false},{"type":"link","label":"Articles","href":"/docs/Utilisateur/Cashless/admin_add_article","docId":"Utilisateur/Cashless/20 Articles","unlisted":false},{"type":"link","label":"Printing orders","href":"/docs/Utilisateur/Cashless/impression_preparation","docId":"Utilisateur/Cashless/25 Impressions des commandes","unlisted":false},{"type":"link","label":"Removing Orders","href":"/docs/Utilisateur/Cashless/admin_supp","docId":"Utilisateur/Cashless/30 SuppCommande","unlisted":false},{"type":"link","label":"Time clock machine","href":"/docs/Utilisateur/Cashless/badge","docId":"Utilisateur/Cashless/150 Badgeuse","unlisted":false},{"type":"link","label":"Loyalty points","href":"/docs/Utilisateur/Cashless/fidelity","docId":"Utilisateur/Cashless/160 Fidelity","unlisted":false},{"type":"link","label":"Cashback","href":"/docs/Utilisateur/Cashless/cashback","docId":"Utilisateur/Cashless/200 Cashback","unlisted":false}],"href":"/docs/category/cashless"},{"type":"category","label":"Ticketing","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a new event from A to Z","href":"/docs/Utilisateur/Billetterie/admin_add_new_event","docId":"Utilisateur/Billetterie/60 creation event","unlisted":false},{"type":"link","label":"Create a free event","href":"/docs/Utilisateur/Billetterie/admin_add_new_free_event","docId":"Utilisateur/Billetterie/70 event gratuit","unlisted":false},{"type":"link","label":"Webhook","href":"/docs/Utilisateur/Billetterie/webhook","docId":"Utilisateur/Billetterie/40 webhook","unlisted":false},{"type":"link","label":"Integration","href":"/docs/Utilisateur/Billetterie/iframe","docId":"Utilisateur/Billetterie/41 Int\xe9gration","unlisted":false},{"type":"link","label":"RSS Feed","href":"/docs/Utilisateur/Billetterie/rss","docId":"Utilisateur/Billetterie/50 rss","unlisted":false}],"href":"/docs/category/billetterie"}],"href":"/docs/category/documentation-utilisateur"},{"type":"category","label":"Tips and tricks","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Social media posting","href":"/docs/Tips/facebook","docId":"Tips/facebook","unlisted":false}],"href":"/docs/category/trucs-et-astuces"},{"type":"category","label":"DIY","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Raspberry Box - Hardware","href":"/docs/install/raspberry","docId":"install/raspberry_hard","unlisted":false},{"type":"link","label":"Raspberry Box - Software","href":"/docs/install/raspberry_soft","docId":"install/raspberry_soft","unlisted":false},{"type":"link","label":"Self hosted","href":"/docs/install/docker_install","docId":"install/server_install","unlisted":false}],"href":"/docs/category/diy"},{"type":"category","label":"API","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/api/intro","docId":"api/01 intro","unlisted":false},{"type":"link","label":"API Keys","href":"/docs/api/apikey","docId":"api/02 Apikey","unlisted":false},{"type":"link","label":"Tenants","href":"/docs/api/tenants","docId":"api/03 Tenants","unlisted":false},{"type":"link","label":"Produits","href":"/docs/api/products","docId":"api/05 Products","unlisted":false},{"type":"link","label":"\xc9v\xe8nements","href":"/docs/api/events","docId":"api/10 Event","unlisted":false},{"type":"link","label":"R\xe9servations et billets","href":"/docs/api/reservations","docId":"api/11 Reservations","unlisted":false}],"href":"/docs/category/api"}]},"docs":{"api/01 intro":{"id":"api/01 intro","title":"Introduction","description":"Manipulez TiBillet en cli !","sidebar":"tutorialSidebar"},"api/02 Apikey":{"id":"api/02 Apikey","title":"API Keys","description":"R\xe9cuperez le token de connection.","sidebar":"tutorialSidebar"},"api/03 Tenants":{"id":"api/03 Tenants","title":"Tenants","description":"Cr\xe9ez et listez les instances de votre serveur multi-tenant","sidebar":"tutorialSidebar"},"api/05 Products":{"id":"api/05 Products","title":"Produits","description":"Cr\xe9ez et listez les produits","sidebar":"tutorialSidebar"},"api/10 Event":{"id":"api/10 Event","title":"\xc9v\xe8nements","description":"Cr\xe9ez un \xe9v\xe8nement avec entr\xe9e libre.","sidebar":"tutorialSidebar"},"api/11 Reservations":{"id":"api/11 Reservations","title":"R\xe9servations et billets","description":"Cr\xe9ez un \xe9v\xe8nement avec entr\xe9e libre.","sidebar":"tutorialSidebar"},"install/raspberry_hard":{"id":"install/raspberry_hard","title":"Raspberry Box - Hardware","description":"Construct your own cash and cashless register box.","sidebar":"tutorialSidebar"},"install/raspberry_soft":{"id":"install/raspberry_soft","title":"Raspberry Box - Software","description":"Construct your own cash and cashless register box.","sidebar":"tutorialSidebar"},"install/server_install":{"id":"install/server_install","title":"Self hosted","description":"Installation de la billetterie f\xe9d\xe9r\xe9 via Docker.","sidebar":"tutorialSidebar"},"presentation/Demonstration":{"id":"presentation/Demonstration","title":"Demonstration","description":"Demonstration instances of ticketing (TiBillet/Event) and cash register (TiBillet/LaBoutik) which accepts payments in local currency and/or cashless, and which allows refreshment and catering orders to be managed.","sidebar":"tutorialSidebar"},"presentation/eco":{"id":"presentation/eco","title":"Prices, conditions and licenses","description":"Eenter a social and solidarity economy !","sidebar":"tutorialSidebar"},"presentation/intro":{"id":"presentation/intro","title":"Introduction","description":"Contactless payment system, zero cash (cashless), event management, catering room management, associative engagement and online ticket purchasing... but not only that!","sidebar":"tutorialSidebar"},"presentation/logo":{"id":"presentation/logo","title":"Logos","description":"/img/LogoTibilletNoirOmbre135px.png","sidebar":"tutorialSidebar"},"presentation/philo":{"id":"presentation/philo","title":"Philosophy","description":"We provide a cashless, ticketing and restaurant management solution for small structures forgotten by large companies.","sidebar":"tutorialSidebar"},"presentation/usage":{"id":"presentation/usage","title":"Uses","description":"Contactless payment system, zero cash (cashless), event management, catering room management, associative engagement and online ticket purchasing... but not only that !","sidebar":"tutorialSidebar"},"Tips/facebook":{"id":"Tips/facebook","title":"Social media posting","description":"An RSS feed is created by Tenant. It lists the last 5 events created.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/40 webhook":{"id":"Utilisateur/Billetterie/40 webhook","title":"Webhook","description":"Send a POST for each confirmed booking.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/41 Int\xe9gration":{"id":"Utilisateur/Billetterie/41 Int\xe9gration","title":"Integration","description":"Integrate your reservations on your website.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/50 rss":{"id":"Utilisateur/Billetterie/50 rss","title":"RSS Feed","description":"Syndication by RSS feed, follow the latest events.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/60 creation event":{"id":"Utilisateur/Billetterie/60 creation event","title":"Create a new event from A to Z","description":"Create a new event in detail.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/70 event gratuit":{"id":"Utilisateur/Billetterie/70 event gratuit","title":"Create a free event","description":"Create a new event in detail.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/1 Application android":{"id":"Utilisateur/Cashless/1 Application android","title":"Android application","description":"Android application available on https://nuage.tierslieux.re/s/BifbQGA3JCk6aH7","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/12 PointVente":{"id":"Utilisateur/Cashless/12 PointVente","title":"Points of sale","description":"Add one or more points of sale.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/15 Categories":{"id":"Utilisateur/Cashless/15 Categories","title":"Article categories","description":"Add one or more article categories.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/150 Badgeuse":{"id":"Utilisateur/Cashless/150 Badgeuse","title":"Time clock machine","description":"Time clock machine, clocking, counting, door opening with NFC cards.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/160 Fidelity":{"id":"Utilisateur/Cashless/160 Fidelity","title":"Loyalty points","description":"PLoyalty points on your federated card !","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/2 CartePrimaire":{"id":"Utilisateur/Cashless/2 CartePrimaire","title":"Primary Cards","description":"Ajouter une ou plusieurs cartes primaires.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/20 Articles":{"id":"Utilisateur/Cashless/20 Articles","title":"Articles","description":"Add one or more items in categories and points of sale and assign them a price.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/200 Cashback":{"id":"Utilisateur/Cashless/200 Cashback","title":"Cashback","description":"Reward online recharges","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/25 Impressions des commandes":{"id":"Utilisateur/Cashless/25 Impressions des commandes","title":"Printing orders","description":"Order in the room and send to be prepared!","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/30 SuppCommande":{"id":"Utilisateur/Cashless/30 SuppCommande","title":"Removing Orders","description":"Remove multiple orders at once.","sidebar":"tutorialSidebar"}}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkdocumentation_v_2=self.webpackChunkdocumentation_v_2||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Presentation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/presentation/introduction","docId":"presentation/intro","unlisted":false},{"type":"link","label":"Uses","href":"/docs/presentation/usages","docId":"presentation/usage","unlisted":false},{"type":"link","label":"Demonstration","href":"/docs/presentation/demonstration","docId":"presentation/Demonstration","unlisted":false},{"type":"link","label":"Philosophy","href":"/docs/presentation/philosophie","docId":"presentation/philo","unlisted":false},{"type":"link","label":"Prices, conditions and licenses","href":"/docs/presentation/tarifs","docId":"presentation/eco","unlisted":false},{"type":"link","label":"Logos","href":"/docs/presentation/logos","docId":"presentation/logo","unlisted":false}],"href":"/docs/category/pr\xe9sentation"},{"type":"category","label":"User documentation","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Cashless","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Android application","href":"/docs/Utilisateur/Cashless/android","docId":"Utilisateur/Cashless/1 Application android","unlisted":false},{"type":"link","label":"Primary Cards","href":"/docs/Utilisateur/Cashless/admin_add_primary","docId":"Utilisateur/Cashless/2 CartePrimaire","unlisted":false},{"type":"link","label":"Points of sale","href":"/docs/Utilisateur/Cashless/admin_add_pos","docId":"Utilisateur/Cashless/12 PointVente","unlisted":false},{"type":"link","label":"Article categories","href":"/docs/Utilisateur/Cashless/admin_add_categorie","docId":"Utilisateur/Cashless/15 Categories","unlisted":false},{"type":"link","label":"Articles","href":"/docs/Utilisateur/Cashless/admin_add_article","docId":"Utilisateur/Cashless/20 Articles","unlisted":false},{"type":"link","label":"Printing orders","href":"/docs/Utilisateur/Cashless/impression_preparation","docId":"Utilisateur/Cashless/25 Impressions des commandes","unlisted":false},{"type":"link","label":"Removing Orders","href":"/docs/Utilisateur/Cashless/admin_supp","docId":"Utilisateur/Cashless/30 SuppCommande","unlisted":false},{"type":"link","label":"Time clock machine","href":"/docs/Utilisateur/Cashless/badge","docId":"Utilisateur/Cashless/150 Badgeuse","unlisted":false},{"type":"link","label":"Loyalty points","href":"/docs/Utilisateur/Cashless/fidelity","docId":"Utilisateur/Cashless/160 Fidelity","unlisted":false},{"type":"link","label":"Cashback","href":"/docs/Utilisateur/Cashless/cashback","docId":"Utilisateur/Cashless/200 Cashback","unlisted":false}],"href":"/docs/category/cashless"},{"type":"category","label":"Ticketing","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a new event from A to Z","href":"/docs/Utilisateur/Billetterie/admin_add_new_event","docId":"Utilisateur/Billetterie/60 creation event","unlisted":false},{"type":"link","label":"Create a free event","href":"/docs/Utilisateur/Billetterie/admin_add_new_free_event","docId":"Utilisateur/Billetterie/70 event gratuit","unlisted":false},{"type":"link","label":"Webhook","href":"/docs/Utilisateur/Billetterie/webhook","docId":"Utilisateur/Billetterie/40 webhook","unlisted":false},{"type":"link","label":"Integration","href":"/docs/Utilisateur/Billetterie/iframe","docId":"Utilisateur/Billetterie/41 Int\xe9gration","unlisted":false},{"type":"link","label":"RSS Feed","href":"/docs/Utilisateur/Billetterie/rss","docId":"Utilisateur/Billetterie/50 rss","unlisted":false}],"href":"/docs/category/billetterie"}],"href":"/docs/category/documentation-utilisateur"},{"type":"category","label":"Tips and tricks","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Social media posting","href":"/docs/Tips/facebook","docId":"Tips/facebook","unlisted":false}],"href":"/docs/category/trucs-et-astuces"},{"type":"category","label":"DIY","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Raspberry Box - Hardware","href":"/docs/install/raspberry","docId":"install/raspberry_hard","unlisted":false},{"type":"link","label":"Raspberry Box - Software","href":"/docs/install/raspberry_soft","docId":"install/raspberry_soft","unlisted":false},{"type":"link","label":"Self hosted","href":"/docs/install/docker_install","docId":"install/server_install","unlisted":false}],"href":"/docs/category/diy"},{"type":"category","label":"API","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction","href":"/docs/api/intro","docId":"api/01 intro","unlisted":false},{"type":"link","label":"API Keys","href":"/docs/api/apikey","docId":"api/02 Apikey","unlisted":false},{"type":"link","label":"Tenants","href":"/docs/api/tenants","docId":"api/03 Tenants","unlisted":false},{"type":"link","label":"Produits","href":"/docs/api/products","docId":"api/05 Products","unlisted":false},{"type":"link","label":"\xc9v\xe8nements","href":"/docs/api/events","docId":"api/10 Event","unlisted":false},{"type":"link","label":"R\xe9servations et billets","href":"/docs/api/reservations","docId":"api/11 Reservations","unlisted":false}],"href":"/docs/category/api"}]},"docs":{"api/01 intro":{"id":"api/01 intro","title":"Introduction","description":"Manipulez TiBillet en cli !","sidebar":"tutorialSidebar"},"api/02 Apikey":{"id":"api/02 Apikey","title":"API Keys","description":"R\xe9cuperez le token de connection.","sidebar":"tutorialSidebar"},"api/03 Tenants":{"id":"api/03 Tenants","title":"Tenants","description":"Cr\xe9ez et listez les instances de votre serveur multi-tenant","sidebar":"tutorialSidebar"},"api/05 Products":{"id":"api/05 Products","title":"Produits","description":"Cr\xe9ez et listez les produits","sidebar":"tutorialSidebar"},"api/10 Event":{"id":"api/10 Event","title":"\xc9v\xe8nements","description":"Cr\xe9ez un \xe9v\xe8nement avec entr\xe9e libre.","sidebar":"tutorialSidebar"},"api/11 Reservations":{"id":"api/11 Reservations","title":"R\xe9servations et billets","description":"Cr\xe9ez un \xe9v\xe8nement avec entr\xe9e libre.","sidebar":"tutorialSidebar"},"install/raspberry_hard":{"id":"install/raspberry_hard","title":"Raspberry Box - Hardware","description":"Construct your own cash and cashless register box.","sidebar":"tutorialSidebar"},"install/raspberry_soft":{"id":"install/raspberry_soft","title":"Raspberry Box - Software","description":"Construct your own cash and cashless register box.","sidebar":"tutorialSidebar"},"install/server_install":{"id":"install/server_install","title":"Self hosted","description":"self hosted TiBillet tools with docker","sidebar":"tutorialSidebar"},"presentation/Demonstration":{"id":"presentation/Demonstration","title":"Demonstration","description":"Demonstration instances of ticketing (TiBillet/Event) and cash register (TiBillet/LaBoutik) which accepts payments in local currency and/or cashless, and which allows refreshment and catering orders to be managed.","sidebar":"tutorialSidebar"},"presentation/eco":{"id":"presentation/eco","title":"Prices, conditions and licenses","description":"Eenter a social and solidarity economy !","sidebar":"tutorialSidebar"},"presentation/intro":{"id":"presentation/intro","title":"Introduction","description":"Contactless payment system, zero cash (cashless), event management, catering room management, associative engagement and online ticket purchasing... but not only that!","sidebar":"tutorialSidebar"},"presentation/logo":{"id":"presentation/logo","title":"Logos","description":"/img/LogoTibilletNoirOmbre135px.png","sidebar":"tutorialSidebar"},"presentation/philo":{"id":"presentation/philo","title":"Philosophy","description":"We provide a cashless, ticketing and restaurant management solution for small structures forgotten by large companies.","sidebar":"tutorialSidebar"},"presentation/usage":{"id":"presentation/usage","title":"Uses","description":"Contactless payment system, zero cash (cashless), event management, catering room management, associative engagement and online ticket purchasing... but not only that !","sidebar":"tutorialSidebar"},"Tips/facebook":{"id":"Tips/facebook","title":"Social media posting","description":"An RSS feed is created by Tenant. It lists the last 5 events created.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/40 webhook":{"id":"Utilisateur/Billetterie/40 webhook","title":"Webhook","description":"Send a POST for each confirmed booking.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/41 Int\xe9gration":{"id":"Utilisateur/Billetterie/41 Int\xe9gration","title":"Integration","description":"Integrate your reservations on your website.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/50 rss":{"id":"Utilisateur/Billetterie/50 rss","title":"RSS Feed","description":"Syndication by RSS feed, follow the latest events.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/60 creation event":{"id":"Utilisateur/Billetterie/60 creation event","title":"Create a new event from A to Z","description":"Create a new event in detail.","sidebar":"tutorialSidebar"},"Utilisateur/Billetterie/70 event gratuit":{"id":"Utilisateur/Billetterie/70 event gratuit","title":"Create a free event","description":"Create a new event in detail.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/1 Application android":{"id":"Utilisateur/Cashless/1 Application android","title":"Android application","description":"Android application available on https://nuage.tierslieux.re/s/BifbQGA3JCk6aH7","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/12 PointVente":{"id":"Utilisateur/Cashless/12 PointVente","title":"Points of sale","description":"Add one or more points of sale.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/15 Categories":{"id":"Utilisateur/Cashless/15 Categories","title":"Article categories","description":"Add one or more article categories.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/150 Badgeuse":{"id":"Utilisateur/Cashless/150 Badgeuse","title":"Time clock machine","description":"Time clock machine, clocking, counting, door opening with NFC cards.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/160 Fidelity":{"id":"Utilisateur/Cashless/160 Fidelity","title":"Loyalty points","description":"PLoyalty points on your federated card !","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/2 CartePrimaire":{"id":"Utilisateur/Cashless/2 CartePrimaire","title":"Primary Cards","description":"Ajouter une ou plusieurs cartes primaires.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/20 Articles":{"id":"Utilisateur/Cashless/20 Articles","title":"Articles","description":"Add one or more items in categories and points of sale and assign them a price.","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/200 Cashback":{"id":"Utilisateur/Cashless/200 Cashback","title":"Cashback","description":"Reward online recharges","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/25 Impressions des commandes":{"id":"Utilisateur/Cashless/25 Impressions des commandes","title":"Printing orders","description":"Order in the room and send to be prepared!","sidebar":"tutorialSidebar"},"Utilisateur/Cashless/30 SuppCommande":{"id":"Utilisateur/Cashless/30 SuppCommande","title":"Removing Orders","description":"Remove multiple orders at once.","sidebar":"tutorialSidebar"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.4d20637c.js b/assets/js/runtime~main.f401e5ca.js
similarity index 66%
rename from assets/js/runtime~main.4d20637c.js
rename to assets/js/runtime~main.f401e5ca.js
index 9b9b9c79..f0a2e047 100644
--- a/assets/js/runtime~main.4d20637c.js
+++ b/assets/js/runtime~main.f401e5ca.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,b,f,d,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var b=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(b.exports,b,b.exports,r),b.loaded=!0,b.exports}r.m=c,r.c=t,e=[],r.O=(a,b,f,d)=>{if(!b){var c=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](b[o])))?b.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[b,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var c={};a=a||[null,b({}),b([]),b(b)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=b(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(d,c),d},r.d=(e,a)=>{for(var b in a)r.o(a,b)&&!r.o(e,b)&&Object.defineProperty(e,b,{enumerable:!0,get:a[b]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,b)=>(r.f[b](e,a),a)),[])),r.u=e=>"assets/js/"+({26:"8daeed5c",241:"bbe9a58b",382:"c02dc41d",418:"bcf52ae3",455:"7d04a44f",485:"53a37278",744:"224701f3",853:"2e4a270e",865:"48857ff6",1005:"a78153fe",1051:"b48fe3d4",1369:"dd564d21",1396:"0261f7e4",1622:"53840870",1824:"4b3a11dc",1938:"11632215",2074:"7f42cc60",2240:"b221afeb",2266:"417623db",2365:"731a8187",2388:"fcb2fcfe",2501:"b8322650",2561:"c0ac7b9c",2634:"c4f5d8e4",2708:"88505e11",2938:"a61d05f4",3468:"b1373d58",3737:"a64fcdbf",3952:"7dbf6479",4078:"79300ddd",4107:"96b8ae89",4150:"3151510a",4171:"9812aca5",4268:"991561bb",4279:"df203c0f",4475:"641be602",4506:"ef2138f0",4634:"65f38bd9",4750:"0fc4b3a8",4787:"3720c009",4910:"cc3b42c3",5072:"9a4c38d3",5151:"55960ee5",5179:"c2be3d09",5418:"1623311b",5535:"44bbc5e7",5606:"d26ec100",5621:"3aa14dd0",5747:"bc2e11b2",5864:"78f64dea",5875:"0efb64b9",6011:"941310dd",6061:"1f391b9e",6142:"3fd7c400",6203:"d527cc20",6317:"fd4196ca",6412:"761ae6cf",6557:"512b8e12",6604:"57b2c8d2",6776:"3fa38879",6969:"14eb3368",7062:"89442936",7098:"a7bd4aaa",7293:"1eec3456",7590:"1e5a94ee",7679:"3dd44a97",7882:"3d58f40e",7967:"7ec4066a",7972:"74b3184d",8194:"c7170f78",8198:"86b2e310",8334:"8a35765d",8401:"17896441",8497:"24d99165",8581:"935f2afb",8678:"321184fb",8703:"3f20655a",8908:"b4e94af8",9048:"a94703ab",9232:"4c993d98",9251:"300b4375",9289:"58765430",9583:"ae852ab6",9613:"8396e807",9647:"5e95c892",9651:"988781e2",9656:"03daf616",9886:"85949e05"}[e]||e)+"."+{26:"7facdaf1",241:"51737ab4",382:"0b7c3f1d",418:"091f205d",455:"6ea53531",485:"083f1a33",744:"3f2300ba",853:"f476fa0e",865:"b2e92db7",1005:"aab940ec",1051:"39e1b2c7",1369:"ca641bf6",1396:"27dc3fa6",1622:"734f8d19",1824:"436f8104",1938:"8f7694e9",2074:"c1fde12c",2237:"c97ebfc9",2240:"dcc3ae03",2266:"88c719f4",2365:"483c9f3c",2388:"e09770ef",2501:"cd178830",2561:"a368c40d",2634:"5703f6bc",2674:"b72a0eb3",2708:"9b994f54",2938:"390e3d95",3468:"f798e451",3737:"7f6949d3",3952:"02118ce1",4078:"9b33c2b2",4107:"51fb9c35",4150:"c7fd8815",4171:"6460063b",4268:"82785b23",4279:"f554e1cf",4475:"c8e010c9",4506:"418e663d",4634:"cac9f252",4750:"a7832871",4787:"648af45f",4910:"c4ab3043",5072:"55816a58",5151:"019e7203",5179:"0e3855c8",5418:"ffcfe4d7",5535:"c63a3bd8",5606:"fd4de459",5621:"e220ef71",5747:"e04afd8e",5864:"406c39ce",5875:"8e4310e9",6011:"da8670f4",6061:"8e3b9443",6142:"1de7ac23",6203:"953e1a13",6317:"400ffa0b",6412:"40726746",6557:"ed4e3f0e",6604:"c9e19fb9",6776:"9e71e1be",6969:"f1620d39",7062:"38da3d47",7098:"9907b4db",7293:"d66c9967",7590:"14b89aab",7679:"e0a7a38d",7882:"0052478a",7967:"45a01cc4",7972:"785c6baf",8194:"65b76b94",8198:"baf90a1b",8334:"cefdf644",8401:"34fa3bc0",8497:"d0be0175",8581:"3b25caf4",8678:"fb090d73",8703:"4b881a4f",8908:"31d34930",9048:"b3e1445a",9232:"6a6ba0ce",9251:"f971fad9",9289:"ece2e08a",9583:"4dd6870d",9613:"b0e3b499",9647:"674f41d0",9651:"a0159120",9656:"5764601a",9886:"e5ef1554"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="documentation-v-2:",r.l=(e,a,b,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==b)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(b))),a)return a(b)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={11632215:"1938",17896441:"8401",53840870:"1622",58765430:"9289",89442936:"7062","8daeed5c":"26",bbe9a58b:"241",c02dc41d:"382",bcf52ae3:"418","7d04a44f":"455","53a37278":"485","224701f3":"744","2e4a270e":"853","48857ff6":"865",a78153fe:"1005",b48fe3d4:"1051",dd564d21:"1369","0261f7e4":"1396","4b3a11dc":"1824","7f42cc60":"2074",b221afeb:"2240","417623db":"2266","731a8187":"2365",fcb2fcfe:"2388",b8322650:"2501",c0ac7b9c:"2561",c4f5d8e4:"2634","88505e11":"2708",a61d05f4:"2938",b1373d58:"3468",a64fcdbf:"3737","7dbf6479":"3952","79300ddd":"4078","96b8ae89":"4107","3151510a":"4150","9812aca5":"4171","991561bb":"4268",df203c0f:"4279","641be602":"4475",ef2138f0:"4506","65f38bd9":"4634","0fc4b3a8":"4750","3720c009":"4787",cc3b42c3:"4910","9a4c38d3":"5072","55960ee5":"5151",c2be3d09:"5179","1623311b":"5418","44bbc5e7":"5535",d26ec100:"5606","3aa14dd0":"5621",bc2e11b2:"5747","78f64dea":"5864","0efb64b9":"5875","941310dd":"6011","1f391b9e":"6061","3fd7c400":"6142",d527cc20:"6203",fd4196ca:"6317","761ae6cf":"6412","512b8e12":"6557","57b2c8d2":"6604","3fa38879":"6776","14eb3368":"6969",a7bd4aaa:"7098","1eec3456":"7293","1e5a94ee":"7590","3dd44a97":"7679","3d58f40e":"7882","7ec4066a":"7967","74b3184d":"7972",c7170f78:"8194","86b2e310":"8198","8a35765d":"8334","24d99165":"8497","935f2afb":"8581","321184fb":"8678","3f20655a":"8703",b4e94af8:"8908",a94703ab:"9048","4c993d98":"9232","300b4375":"9251",ae852ab6:"9583","8396e807":"9613","5e95c892":"9647","988781e2":"9651","03daf616":"9656","85949e05":"9886"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,b)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)b.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise(((b,d)=>f=e[a]=[b,d]));b.push(f[2]=d);var c=r.p+r.u(a),t=new Error;r.l(c,(b=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=b&&("load"===b.type?"missing":b.type),c=b&&b.target&&b.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+c+")",t.name="ChunkLoadError",t.type=d,t.request=c,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,b)=>{var f,d,c=b[0],t=b[1],o=b[2],n=0;if(c.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(b);n{"use strict";var e,a,d,b,f,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,b,f)=>{if(!d){var c=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[d,b,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,r.d(f,c),f},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({26:"8daeed5c",241:"bbe9a58b",382:"c02dc41d",418:"bcf52ae3",455:"7d04a44f",485:"53a37278",744:"224701f3",853:"2e4a270e",865:"48857ff6",1005:"a78153fe",1051:"b48fe3d4",1369:"dd564d21",1396:"0261f7e4",1622:"53840870",1824:"4b3a11dc",1938:"11632215",2074:"7f42cc60",2240:"b221afeb",2266:"417623db",2365:"731a8187",2388:"fcb2fcfe",2501:"b8322650",2561:"c0ac7b9c",2634:"c4f5d8e4",2708:"88505e11",2938:"a61d05f4",3468:"b1373d58",3737:"a64fcdbf",3952:"7dbf6479",4078:"79300ddd",4107:"96b8ae89",4150:"3151510a",4171:"9812aca5",4268:"991561bb",4279:"df203c0f",4475:"641be602",4506:"ef2138f0",4634:"65f38bd9",4750:"0fc4b3a8",4787:"3720c009",4910:"cc3b42c3",5072:"9a4c38d3",5151:"55960ee5",5179:"c2be3d09",5418:"1623311b",5535:"44bbc5e7",5606:"d26ec100",5621:"3aa14dd0",5747:"bc2e11b2",5864:"78f64dea",5875:"0efb64b9",6011:"941310dd",6061:"1f391b9e",6142:"3fd7c400",6203:"d527cc20",6317:"fd4196ca",6412:"761ae6cf",6557:"512b8e12",6604:"57b2c8d2",6776:"3fa38879",6969:"14eb3368",7062:"89442936",7098:"a7bd4aaa",7293:"1eec3456",7590:"1e5a94ee",7679:"3dd44a97",7882:"3d58f40e",7967:"7ec4066a",7972:"74b3184d",8194:"c7170f78",8198:"86b2e310",8334:"8a35765d",8401:"17896441",8497:"24d99165",8581:"935f2afb",8678:"321184fb",8703:"3f20655a",8908:"b4e94af8",9048:"a94703ab",9232:"4c993d98",9251:"300b4375",9289:"58765430",9583:"ae852ab6",9613:"8396e807",9647:"5e95c892",9651:"988781e2",9656:"03daf616",9886:"85949e05"}[e]||e)+"."+{26:"7facdaf1",241:"51737ab4",382:"0b7c3f1d",418:"091f205d",455:"6ea53531",485:"083f1a33",744:"3f2300ba",853:"f476fa0e",865:"b2e92db7",1005:"aab940ec",1051:"39e1b2c7",1369:"ca641bf6",1396:"27dc3fa6",1622:"734f8d19",1824:"436f8104",1938:"8f7694e9",2074:"c1fde12c",2237:"c97ebfc9",2240:"dcc3ae03",2266:"88c719f4",2365:"483c9f3c",2388:"e09770ef",2501:"cd178830",2561:"a368c40d",2634:"5703f6bc",2674:"b72a0eb3",2708:"9b994f54",2938:"390e3d95",3468:"f798e451",3737:"7f6949d3",3952:"02118ce1",4078:"9b33c2b2",4107:"51fb9c35",4150:"c7fd8815",4171:"6460063b",4268:"82785b23",4279:"f554e1cf",4475:"c8e010c9",4506:"418e663d",4634:"cac9f252",4750:"a7832871",4787:"648af45f",4910:"c4ab3043",5072:"55816a58",5151:"019e7203",5179:"0e3855c8",5418:"ffcfe4d7",5535:"c63a3bd8",5606:"fd4de459",5621:"e220ef71",5747:"e04afd8e",5864:"406c39ce",5875:"8e4310e9",6011:"da8670f4",6061:"8e3b9443",6142:"1de7ac23",6203:"953e1a13",6317:"400ffa0b",6412:"40726746",6557:"ed4e3f0e",6604:"c9e19fb9",6776:"9e71e1be",6969:"f1620d39",7062:"38da3d47",7098:"9907b4db",7293:"d66c9967",7590:"14b89aab",7679:"e0a7a38d",7882:"0052478a",7967:"45a01cc4",7972:"785c6baf",8194:"65b76b94",8198:"baf90a1b",8334:"cefdf644",8401:"34fa3bc0",8497:"d0be0175",8581:"3e897fbf",8678:"fb090d73",8703:"b2cd48fe",8908:"31d34930",9048:"b3e1445a",9232:"6a6ba0ce",9251:"f971fad9",9289:"ece2e08a",9583:"4dd6870d",9613:"b0e3b499",9647:"674f41d0",9651:"a0159120",9656:"5764601a",9886:"e5ef1554"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="documentation-v-2:",r.l=(e,a,d,c)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={11632215:"1938",17896441:"8401",53840870:"1622",58765430:"9289",89442936:"7062","8daeed5c":"26",bbe9a58b:"241",c02dc41d:"382",bcf52ae3:"418","7d04a44f":"455","53a37278":"485","224701f3":"744","2e4a270e":"853","48857ff6":"865",a78153fe:"1005",b48fe3d4:"1051",dd564d21:"1369","0261f7e4":"1396","4b3a11dc":"1824","7f42cc60":"2074",b221afeb:"2240","417623db":"2266","731a8187":"2365",fcb2fcfe:"2388",b8322650:"2501",c0ac7b9c:"2561",c4f5d8e4:"2634","88505e11":"2708",a61d05f4:"2938",b1373d58:"3468",a64fcdbf:"3737","7dbf6479":"3952","79300ddd":"4078","96b8ae89":"4107","3151510a":"4150","9812aca5":"4171","991561bb":"4268",df203c0f:"4279","641be602":"4475",ef2138f0:"4506","65f38bd9":"4634","0fc4b3a8":"4750","3720c009":"4787",cc3b42c3:"4910","9a4c38d3":"5072","55960ee5":"5151",c2be3d09:"5179","1623311b":"5418","44bbc5e7":"5535",d26ec100:"5606","3aa14dd0":"5621",bc2e11b2:"5747","78f64dea":"5864","0efb64b9":"5875","941310dd":"6011","1f391b9e":"6061","3fd7c400":"6142",d527cc20:"6203",fd4196ca:"6317","761ae6cf":"6412","512b8e12":"6557","57b2c8d2":"6604","3fa38879":"6776","14eb3368":"6969",a7bd4aaa:"7098","1eec3456":"7293","1e5a94ee":"7590","3dd44a97":"7679","3d58f40e":"7882","7ec4066a":"7967","74b3184d":"7972",c7170f78:"8194","86b2e310":"8198","8a35765d":"8334","24d99165":"8497","935f2afb":"8581","321184fb":"8678","3f20655a":"8703",b4e94af8:"8908",a94703ab:"9048","4c993d98":"9232","300b4375":"9251",ae852ab6:"9583","8396e807":"9613","5e95c892":"9647","988781e2":"9651","03daf616":"9656","85949e05":"9886"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)d.push(b[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((d,f)=>b=e[a]=[d,f]));d.push(b[2]=f);var c=r.p+r.u(a),t=new Error;r.l(c,(d=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+c+")",t.name="ChunkLoadError",t.type=f,t.request=c,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var b,f,c=d[0],t=d[1],o=d[2],n=0;if(c.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(d);nConditions générales de vente et d'utilisation | TiBillet
-
+
diff --git a/docs/Tips/facebook/index.html b/docs/Tips/facebook/index.html
index 7328118e..2ca3e54f 100644
--- a/docs/Tips/facebook/index.html
+++ b/docs/Tips/facebook/index.html
@@ -4,7 +4,7 @@
Social media posting | TiBillet
-
+
diff --git a/docs/Utilisateur/Billetterie/admin_add_new_event/index.html b/docs/Utilisateur/Billetterie/admin_add_new_event/index.html
index 9ae06a93..cee05252 100644
--- a/docs/Utilisateur/Billetterie/admin_add_new_event/index.html
+++ b/docs/Utilisateur/Billetterie/admin_add_new_event/index.html
@@ -4,7 +4,7 @@
Create a new event from A to Z | TiBillet
-
+
diff --git a/docs/Utilisateur/Billetterie/admin_add_new_free_event/index.html b/docs/Utilisateur/Billetterie/admin_add_new_free_event/index.html
index 115e68cb..ec94984d 100644
--- a/docs/Utilisateur/Billetterie/admin_add_new_free_event/index.html
+++ b/docs/Utilisateur/Billetterie/admin_add_new_free_event/index.html
@@ -4,7 +4,7 @@
Create a free event | TiBillet
-
+
diff --git a/docs/Utilisateur/Billetterie/iframe/index.html b/docs/Utilisateur/Billetterie/iframe/index.html
index e6c3c129..46f07929 100644
--- a/docs/Utilisateur/Billetterie/iframe/index.html
+++ b/docs/Utilisateur/Billetterie/iframe/index.html
@@ -4,7 +4,7 @@
Integration | TiBillet
-
+
diff --git a/docs/Utilisateur/Billetterie/rss/index.html b/docs/Utilisateur/Billetterie/rss/index.html
index ca50d244..1ba78baf 100644
--- a/docs/Utilisateur/Billetterie/rss/index.html
+++ b/docs/Utilisateur/Billetterie/rss/index.html
@@ -4,7 +4,7 @@
RSS Feed | TiBillet
-
+
diff --git a/docs/Utilisateur/Billetterie/webhook/index.html b/docs/Utilisateur/Billetterie/webhook/index.html
index e9d72d26..ad30262b 100644
--- a/docs/Utilisateur/Billetterie/webhook/index.html
+++ b/docs/Utilisateur/Billetterie/webhook/index.html
@@ -4,7 +4,7 @@
Webhook | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/admin_add_article/index.html b/docs/Utilisateur/Cashless/admin_add_article/index.html
index 428bd045..3a809fe9 100644
--- a/docs/Utilisateur/Cashless/admin_add_article/index.html
+++ b/docs/Utilisateur/Cashless/admin_add_article/index.html
@@ -4,7 +4,7 @@
Articles | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/admin_add_categorie/index.html b/docs/Utilisateur/Cashless/admin_add_categorie/index.html
index 4d221dd7..be68bafc 100644
--- a/docs/Utilisateur/Cashless/admin_add_categorie/index.html
+++ b/docs/Utilisateur/Cashless/admin_add_categorie/index.html
@@ -4,7 +4,7 @@
Article categories | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/admin_add_pos/index.html b/docs/Utilisateur/Cashless/admin_add_pos/index.html
index f1e6ea76..b73b1350 100644
--- a/docs/Utilisateur/Cashless/admin_add_pos/index.html
+++ b/docs/Utilisateur/Cashless/admin_add_pos/index.html
@@ -4,7 +4,7 @@
Points of sale | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/admin_add_primary/index.html b/docs/Utilisateur/Cashless/admin_add_primary/index.html
index a2ff98cd..146b8597 100644
--- a/docs/Utilisateur/Cashless/admin_add_primary/index.html
+++ b/docs/Utilisateur/Cashless/admin_add_primary/index.html
@@ -4,7 +4,7 @@
Primary Cards | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/admin_supp/index.html b/docs/Utilisateur/Cashless/admin_supp/index.html
index 4e9ecae5..f0a8161d 100644
--- a/docs/Utilisateur/Cashless/admin_supp/index.html
+++ b/docs/Utilisateur/Cashless/admin_supp/index.html
@@ -4,7 +4,7 @@
Removing Orders | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/android/index.html b/docs/Utilisateur/Cashless/android/index.html
index efc96bf4..26d2f11d 100644
--- a/docs/Utilisateur/Cashless/android/index.html
+++ b/docs/Utilisateur/Cashless/android/index.html
@@ -4,7 +4,7 @@
Android application | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/badge/index.html b/docs/Utilisateur/Cashless/badge/index.html
index e2f55293..ed11cc15 100644
--- a/docs/Utilisateur/Cashless/badge/index.html
+++ b/docs/Utilisateur/Cashless/badge/index.html
@@ -4,7 +4,7 @@
Time clock machine | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/cashback/index.html b/docs/Utilisateur/Cashless/cashback/index.html
index 0244e8a1..3f841513 100644
--- a/docs/Utilisateur/Cashless/cashback/index.html
+++ b/docs/Utilisateur/Cashless/cashback/index.html
@@ -4,7 +4,7 @@
Cashback | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/fidelity/index.html b/docs/Utilisateur/Cashless/fidelity/index.html
index 9522228d..7b058e06 100644
--- a/docs/Utilisateur/Cashless/fidelity/index.html
+++ b/docs/Utilisateur/Cashless/fidelity/index.html
@@ -4,7 +4,7 @@
Loyalty points | TiBillet
-
+
diff --git a/docs/Utilisateur/Cashless/impression_preparation/index.html b/docs/Utilisateur/Cashless/impression_preparation/index.html
index a66ff09f..44f7a3ac 100644
--- a/docs/Utilisateur/Cashless/impression_preparation/index.html
+++ b/docs/Utilisateur/Cashless/impression_preparation/index.html
@@ -4,7 +4,7 @@
Printing orders | TiBillet
-
+
diff --git a/docs/api/apikey/index.html b/docs/api/apikey/index.html
index f7b5433a..23f313fb 100644
--- a/docs/api/apikey/index.html
+++ b/docs/api/apikey/index.html
@@ -4,7 +4,7 @@
API Keys | TiBillet
-
+
diff --git a/docs/api/events/index.html b/docs/api/events/index.html
index ac9d94ff..23b4ed1b 100644
--- a/docs/api/events/index.html
+++ b/docs/api/events/index.html
@@ -4,7 +4,7 @@
Évènements | TiBillet
-
+
diff --git a/docs/api/intro/index.html b/docs/api/intro/index.html
index b26ef02d..4b8c2280 100644
--- a/docs/api/intro/index.html
+++ b/docs/api/intro/index.html
@@ -4,7 +4,7 @@
Introduction | TiBillet
-
+
diff --git a/docs/api/products/index.html b/docs/api/products/index.html
index 64a7b4fc..0d81dd47 100644
--- a/docs/api/products/index.html
+++ b/docs/api/products/index.html
@@ -4,7 +4,7 @@
Produits | TiBillet
-
+
diff --git a/docs/api/reservations/index.html b/docs/api/reservations/index.html
index 5d42f71a..e67e8a46 100644
--- a/docs/api/reservations/index.html
+++ b/docs/api/reservations/index.html
@@ -4,7 +4,7 @@
Réservations et billets | TiBillet
-
+
diff --git a/docs/api/tenants/index.html b/docs/api/tenants/index.html
index b3204bcc..e57a40e5 100644
--- a/docs/api/tenants/index.html
+++ b/docs/api/tenants/index.html
@@ -4,7 +4,7 @@
Tenants | TiBillet
-
+
diff --git a/docs/category/api/index.html b/docs/category/api/index.html
index e1ad4fbe..99ccc04b 100644
--- a/docs/category/api/index.html
+++ b/docs/category/api/index.html
@@ -4,7 +4,7 @@
API | TiBillet
-
+
diff --git a/docs/category/billetterie/index.html b/docs/category/billetterie/index.html
index 4257d4de..20115cf8 100644
--- a/docs/category/billetterie/index.html
+++ b/docs/category/billetterie/index.html
@@ -4,7 +4,7 @@
Ticketing | TiBillet
-
+
diff --git a/docs/category/cashless/index.html b/docs/category/cashless/index.html
index 41c9024a..3686c103 100644
--- a/docs/category/cashless/index.html
+++ b/docs/category/cashless/index.html
@@ -4,7 +4,7 @@
Cashless | TiBillet
-
+
diff --git a/docs/category/diy/index.html b/docs/category/diy/index.html
index 1cf1a7f5..fc350fad 100644
--- a/docs/category/diy/index.html
+++ b/docs/category/diy/index.html
@@ -4,10 +4,10 @@
DIY | TiBillet
-
+
-