diff --git a/404.html b/404.html index f3648418..50758ece 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | TiBillet - + diff --git a/assets/js/3f20655a.02395a87.js b/assets/js/3f20655a.4b881a4f.js similarity index 82% rename from assets/js/3f20655a.02395a87.js rename to assets/js/3f20655a.4b881a4f.js index b151e6a4..ae18c320 100644 --- a/assets/js/3f20655a.02395a87.js +++ b/assets/js/3f20655a.4b881a4f.js @@ -1 +1 @@ -"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 database www logs\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:alpha1.2\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\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 +"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/runtime~main.e1b99d0c.js b/assets/js/runtime~main.4d20637c.js similarity index 99% rename from assets/js/runtime~main.e1b99d0c.js rename to assets/js/runtime~main.4d20637c.js index 19ae6c65..9b9b9c79 100644 --- a/assets/js/runtime~main.e1b99d0c.js +++ b/assets/js/runtime~main.4d20637c.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:"02395a87",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,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 Conditions générales de vente et d'utilisation | TiBillet - + diff --git a/docs/Tips/facebook/index.html b/docs/Tips/facebook/index.html index 01928a27..7328118e 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 0c04402c..9ae06a93 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 21aa429d..115e68cb 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 0f2bf192..e6c3c129 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 a48bda24..ca50d244 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 66fcdf5d..e9d72d26 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 ebb19bde..428bd045 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 e677bd0f..4d221dd7 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 7357d152..f1e6ea76 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 aaaddd8f..a2ff98cd 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 a340bb34..4e9ecae5 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 a17dd5e3..efc96bf4 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 ed60dd79..e2f55293 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 bf94052e..0244e8a1 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 b725af08..9522228d 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 f6efdd2d..a66ff09f 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 d6e09bf7..f7b5433a 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 39bfe0e3..ac9d94ff 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 906de2a9..b26ef02d 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 b1d8bcbc..64a7b4fc 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 39d2dcd0..5d42f71a 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 625da1eb..b3204bcc 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 11c21770..e1ad4fbe 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 c7bc32aa..4257d4de 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 0d0651a1..41c9024a 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 cee3b3fa..1cf1a7f5 100644 --- a/docs/category/diy/index.html +++ b/docs/category/diy/index.html @@ -4,7 +4,7 @@ DIY | TiBillet - + diff --git a/docs/category/documentation-utilisateur/index.html b/docs/category/documentation-utilisateur/index.html index 8372fb15..112a1cca 100644 --- a/docs/category/documentation-utilisateur/index.html +++ b/docs/category/documentation-utilisateur/index.html @@ -4,7 +4,7 @@ User documentation | TiBillet - + diff --git "a/docs/category/pr\303\251sentation/index.html" "b/docs/category/pr\303\251sentation/index.html" index b57d2f6f..b06537d3 100644 --- "a/docs/category/pr\303\251sentation/index.html" +++ "b/docs/category/pr\303\251sentation/index.html" @@ -4,7 +4,7 @@ Presentation | TiBillet - + diff --git a/docs/category/trucs-et-astuces/index.html b/docs/category/trucs-et-astuces/index.html index 6a247967..c26607bb 100644 --- a/docs/category/trucs-et-astuces/index.html +++ b/docs/category/trucs-et-astuces/index.html @@ -4,7 +4,7 @@ Tips and tricks | TiBillet - + diff --git a/docs/install/docker_install/index.html b/docs/install/docker_install/index.html index d6640c4e..8eb6d79d 100644 --- a/docs/install/docker_install/index.html +++ b/docs/install/docker_install/index.html @@ -4,7 +4,7 @@ Self hosted | TiBillet - + @@ -73,11 +73,11 @@

Generate Fernet key and django secret key

# Generate fernet key with the fedow image :
# Choose one line and fill the .env file
docker 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)]))"

# Generate django secret key with the fedow image :
# Choose one line and fill the .env file
docker 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)]))"

Prepare the rocket launch

-
# Create frontend and backend network with docker
docker network create frontend
docker network create fedow_backend

# prepare the logs, assets and database folder
mkdir database www logs
-
services:
fedow_django:
image: tibillet/fedow:alpha1.2
container_name: fedow_django
hostname: fedow_django
restart: always
env_file: .env
user: fedow
volumes:
- ./database:/home/fedow/Fedow/database
- ./www:/home/fedow/Fedow/www
- ./logs:/home/fedow/Fedow/logs
networks:
- fedow_backend

fedow_nginx:
image: nginx
restart: always
container_name: fedow_nginx
hostname: fedow_nginx
volumes:
- ./www:/www
- ./logs:/logs
- ./nginx:/etc/nginx/conf.d
depends_on:
- fedow_django
links:
- fedow_django:fedow_django
labels:
- traefik.enable=true
- traefik.docker.network=frontend
- traefik.http.routers.fedow_nginx.tls.certresolver=myresolver
- traefik.http.routers.fedow_nginx.rule=Host(`$DOMAIN`)
networks:
- frontend
- fedow_backend


networks:
frontend:
external: true
fedow_backend:
+
# Create frontend and backend network with docker
docker network create frontend
docker network create fedow_backend

# prepare the logs, assets and database folder
mkdir logs www database
+
services:
fedow_django:
image: tibillet/fedow:latest
container_name: fedow_django
hostname: fedow_django
restart: always
env_file: .env
user: fedow
volumes:
- ./database:/home/fedow/Fedow/database
- ./www:/home/fedow/Fedow/www
- ./logs:/home/fedow/Fedow/logs
networks:
- fedow_backend

fedow_nginx:
image: nginx:latest
restart: always
container_name: fedow_nginx
hostname: fedow_nginx
volumes:
- ./www:/www
- ./logs:/logs
- ./nginx:/etc/nginx/conf.d
depends_on:
- fedow_django
links:
- fedow_django:fedow_django
labels:
- traefik.enable=true
- traefik.docker.network=frontend
- traefik.http.routers.fedow_nginx.tls.certresolver=myresolver
- traefik.http.routers.fedow_nginx.rule=Host(`$DOMAIN`)
networks:
- frontend
- fedow_backend


networks:
frontend:
external: true
fedow_backend:

Launch the rocket !

docker compose up -d 
# To see the logs :
docker compose logs -f
-

And check to https://<DOMAIN>/dashbord

+

And check to https://<FEDOW_DOMAIN>/dashbord

Congratulation !

\ No newline at end of file diff --git a/docs/install/raspberry/index.html b/docs/install/raspberry/index.html index 665fd43e..4a568485 100644 --- a/docs/install/raspberry/index.html +++ b/docs/install/raspberry/index.html @@ -4,7 +4,7 @@ Raspberry Box - Hardware | TiBillet - + diff --git a/docs/install/raspberry_soft/index.html b/docs/install/raspberry_soft/index.html index e64ac059..c62cc3c4 100644 --- a/docs/install/raspberry_soft/index.html +++ b/docs/install/raspberry_soft/index.html @@ -4,7 +4,7 @@ Raspberry Box - Software | TiBillet - + diff --git a/docs/presentation/demonstration/index.html b/docs/presentation/demonstration/index.html index 8917b517..02066bf6 100644 --- a/docs/presentation/demonstration/index.html +++ b/docs/presentation/demonstration/index.html @@ -4,7 +4,7 @@ Demonstration | TiBillet - + diff --git a/docs/presentation/introduction/index.html b/docs/presentation/introduction/index.html index 51d79ace..75a39709 100644 --- a/docs/presentation/introduction/index.html +++ b/docs/presentation/introduction/index.html @@ -4,7 +4,7 @@ Introduction | TiBillet - + diff --git a/docs/presentation/logos/index.html b/docs/presentation/logos/index.html index a98e0acc..1d11976f 100644 --- a/docs/presentation/logos/index.html +++ b/docs/presentation/logos/index.html @@ -4,7 +4,7 @@ Logos | TiBillet - + diff --git a/docs/presentation/philosophie/index.html b/docs/presentation/philosophie/index.html index 52793c07..7ec2a9a9 100644 --- a/docs/presentation/philosophie/index.html +++ b/docs/presentation/philosophie/index.html @@ -4,7 +4,7 @@ Philosophy | TiBillet - + diff --git a/docs/presentation/tarifs/index.html b/docs/presentation/tarifs/index.html index fb0d3744..ddff2f18 100644 --- a/docs/presentation/tarifs/index.html +++ b/docs/presentation/tarifs/index.html @@ -4,7 +4,7 @@ Prices, conditions and licenses | TiBillet - + diff --git a/docs/presentation/usages/index.html b/docs/presentation/usages/index.html index a827a044..35d821fd 100644 --- a/docs/presentation/usages/index.html +++ b/docs/presentation/usages/index.html @@ -4,7 +4,7 @@ Uses | TiBillet - + diff --git a/docs/tags/access-card/index.html b/docs/tags/access-card/index.html index 978bd240..1dc7553b 100644 --- a/docs/tags/access-card/index.html +++ b/docs/tags/access-card/index.html @@ -4,7 +4,7 @@ One doc tagged with "access card" | TiBillet - + diff --git a/docs/tags/associations/index.html b/docs/tags/associations/index.html index 103d7937..125ff5f5 100644 --- a/docs/tags/associations/index.html +++ b/docs/tags/associations/index.html @@ -4,7 +4,7 @@ One doc tagged with "associations" | TiBillet - + diff --git a/docs/tags/badge-inter-lieux/index.html b/docs/tags/badge-inter-lieux/index.html index 900a931f..41317005 100644 --- a/docs/tags/badge-inter-lieux/index.html +++ b/docs/tags/badge-inter-lieux/index.html @@ -4,7 +4,7 @@ One doc tagged with "badge inter-lieux" | TiBillet - + diff --git a/docs/tags/billetterie/index.html b/docs/tags/billetterie/index.html index 84e7c6c6..44d865dd 100644 --- a/docs/tags/billetterie/index.html +++ b/docs/tags/billetterie/index.html @@ -4,7 +4,7 @@ 4 docs tagged with "billetterie" | TiBillet - + diff --git a/docs/tags/caisse-enregistreuse/index.html b/docs/tags/caisse-enregistreuse/index.html index edfabe98..2ea79bf8 100644 --- a/docs/tags/caisse-enregistreuse/index.html +++ b/docs/tags/caisse-enregistreuse/index.html @@ -4,7 +4,7 @@ 2 docs tagged with "caisse enregistreuse" | TiBillet - + diff --git a/docs/tags/card/index.html b/docs/tags/card/index.html index 686463fd..5a4f6a6b 100644 --- a/docs/tags/card/index.html +++ b/docs/tags/card/index.html @@ -4,7 +4,7 @@ One doc tagged with "card" | TiBillet - + diff --git a/docs/tags/cash-register/index.html b/docs/tags/cash-register/index.html index 05bbe515..fb0a1565 100644 --- a/docs/tags/cash-register/index.html +++ b/docs/tags/cash-register/index.html @@ -4,7 +4,7 @@ One doc tagged with "cash register" | TiBillet - + diff --git a/docs/tags/cashback/index.html b/docs/tags/cashback/index.html index a1058fe7..207a1cc5 100644 --- a/docs/tags/cashback/index.html +++ b/docs/tags/cashback/index.html @@ -4,7 +4,7 @@ One doc tagged with "cashback" | TiBillet - + diff --git a/docs/tags/cashless/index.html b/docs/tags/cashless/index.html index 0e681aaa..20948714 100644 --- a/docs/tags/cashless/index.html +++ b/docs/tags/cashless/index.html @@ -4,7 +4,7 @@ 4 docs tagged with "cashless" | TiBillet - + diff --git a/docs/tags/catering/index.html b/docs/tags/catering/index.html index 51c48c92..45305963 100644 --- a/docs/tags/catering/index.html +++ b/docs/tags/catering/index.html @@ -4,7 +4,7 @@ 2 docs tagged with "catering" | TiBillet - + diff --git a/docs/tags/cooperative/index.html b/docs/tags/cooperative/index.html index 3dc14199..fc66cf65 100644 --- a/docs/tags/cooperative/index.html +++ b/docs/tags/cooperative/index.html @@ -4,7 +4,7 @@ One doc tagged with "coopérative" | TiBillet - + diff --git a/docs/tags/dematerialized-payment/index.html b/docs/tags/dematerialized-payment/index.html index c906f0ff..5326fb15 100644 --- a/docs/tags/dematerialized-payment/index.html +++ b/docs/tags/dematerialized-payment/index.html @@ -4,7 +4,7 @@ One doc tagged with "dematerialized payment" | TiBillet - + diff --git a/docs/tags/demonstration/index.html b/docs/tags/demonstration/index.html index 892aa8d7..980fab46 100644 --- a/docs/tags/demonstration/index.html +++ b/docs/tags/demonstration/index.html @@ -4,7 +4,7 @@ One doc tagged with "démonstration" | TiBillet - + diff --git a/docs/tags/dokos/index.html b/docs/tags/dokos/index.html index 8d898c93..bfec752c 100644 --- a/docs/tags/dokos/index.html +++ b/docs/tags/dokos/index.html @@ -4,7 +4,7 @@ One doc tagged with "dokos" | TiBillet - + diff --git a/docs/tags/events/index.html b/docs/tags/events/index.html index e761d390..a29b0795 100644 --- a/docs/tags/events/index.html +++ b/docs/tags/events/index.html @@ -4,7 +4,7 @@ One doc tagged with "events" | TiBillet - + diff --git a/docs/tags/federated/index.html b/docs/tags/federated/index.html index 8b0b3d15..61640909 100644 --- a/docs/tags/federated/index.html +++ b/docs/tags/federated/index.html @@ -4,7 +4,7 @@ One doc tagged with "federated" | TiBillet - + diff --git a/docs/tags/festival/index.html b/docs/tags/festival/index.html index f5715156..39a89c97 100644 --- a/docs/tags/festival/index.html +++ b/docs/tags/festival/index.html @@ -4,7 +4,7 @@ One doc tagged with "festival" | TiBillet - + diff --git a/docs/tags/fidelite/index.html b/docs/tags/fidelite/index.html index 099231df..61107a51 100644 --- a/docs/tags/fidelite/index.html +++ b/docs/tags/fidelite/index.html @@ -4,7 +4,7 @@ One doc tagged with "fidélité" | TiBillet - + diff --git a/docs/tags/fidelity/index.html b/docs/tags/fidelity/index.html index b9d795bd..56cc6355 100644 --- a/docs/tags/fidelity/index.html +++ b/docs/tags/fidelity/index.html @@ -4,7 +4,7 @@ One doc tagged with "fidelity" | TiBillet - + diff --git a/docs/tags/free-software/index.html b/docs/tags/free-software/index.html index f1d3c266..6baf2aea 100644 --- a/docs/tags/free-software/index.html +++ b/docs/tags/free-software/index.html @@ -4,7 +4,7 @@ One doc tagged with "free software" | TiBillet - + diff --git a/docs/tags/index.html b/docs/tags/index.html index 983b5090..c045f1d3 100644 --- a/docs/tags/index.html +++ b/docs/tags/index.html @@ -4,7 +4,7 @@ Tags | TiBillet - + diff --git a/docs/tags/local-currencies/index.html b/docs/tags/local-currencies/index.html index 3652c1b4..1fbf89db 100644 --- a/docs/tags/local-currencies/index.html +++ b/docs/tags/local-currencies/index.html @@ -4,7 +4,7 @@ One doc tagged with "local currencies" | TiBillet - + diff --git a/docs/tags/logiciel-libre/index.html b/docs/tags/logiciel-libre/index.html index c6e45324..33716bab 100644 --- a/docs/tags/logiciel-libre/index.html +++ b/docs/tags/logiciel-libre/index.html @@ -4,7 +4,7 @@ One doc tagged with "logiciel libre" | TiBillet - + diff --git a/docs/tags/loyalty/index.html b/docs/tags/loyalty/index.html index d39742ec..f02a57ff 100644 --- a/docs/tags/loyalty/index.html +++ b/docs/tags/loyalty/index.html @@ -4,7 +4,7 @@ One doc tagged with "loyalty" | TiBillet - + diff --git a/docs/tags/monnaie-locale/index.html b/docs/tags/monnaie-locale/index.html index 6b0f0e49..e208bd73 100644 --- a/docs/tags/monnaie-locale/index.html +++ b/docs/tags/monnaie-locale/index.html @@ -4,7 +4,7 @@ One doc tagged with "monnaie locale" | TiBillet - + diff --git a/docs/tags/monnaies-locales/index.html b/docs/tags/monnaies-locales/index.html index 8539e0fd..99b5c8df 100644 --- a/docs/tags/monnaies-locales/index.html +++ b/docs/tags/monnaies-locales/index.html @@ -4,7 +4,7 @@ One doc tagged with "monnaies locales" | TiBillet - + diff --git a/docs/tags/monnaies-temps/index.html b/docs/tags/monnaies-temps/index.html index 083b2357..04aeb54e 100644 --- a/docs/tags/monnaies-temps/index.html +++ b/docs/tags/monnaies-temps/index.html @@ -4,7 +4,7 @@ One doc tagged with "monnaies temps" | TiBillet - + diff --git a/docs/tags/open-source/index.html b/docs/tags/open-source/index.html index 69099cb8..234ed375 100644 --- a/docs/tags/open-source/index.html +++ b/docs/tags/open-source/index.html @@ -4,7 +4,7 @@ One doc tagged with "open source" | TiBillet - + diff --git a/docs/tags/order-taking/index.html b/docs/tags/order-taking/index.html index 3e542548..05016df5 100644 --- a/docs/tags/order-taking/index.html +++ b/docs/tags/order-taking/index.html @@ -4,7 +4,7 @@ One doc tagged with "order taking" | TiBillet - + diff --git a/docs/tags/paiement-dematerialise/index.html b/docs/tags/paiement-dematerialise/index.html index fe400150..b35c4067 100644 --- a/docs/tags/paiement-dematerialise/index.html +++ b/docs/tags/paiement-dematerialise/index.html @@ -4,7 +4,7 @@ One doc tagged with "paiement dématérialisé" | TiBillet - + diff --git a/docs/tags/prise-de-commandes/index.html b/docs/tags/prise-de-commandes/index.html index a8f5abaf..bf2c10c1 100644 --- a/docs/tags/prise-de-commandes/index.html +++ b/docs/tags/prise-de-commandes/index.html @@ -4,7 +4,7 @@ One doc tagged with "prise de commandes" | TiBillet - + diff --git a/docs/tags/stripe/index.html b/docs/tags/stripe/index.html index 8a078fbe..111786a2 100644 --- a/docs/tags/stripe/index.html +++ b/docs/tags/stripe/index.html @@ -4,7 +4,7 @@ One doc tagged with "stripe" | TiBillet - + diff --git a/docs/tags/ticketing/index.html b/docs/tags/ticketing/index.html index 40e27062..8c5a931b 100644 --- a/docs/tags/ticketing/index.html +++ b/docs/tags/ticketing/index.html @@ -4,7 +4,7 @@ 4 docs tagged with "ticketing" | TiBillet - + diff --git a/docs/tags/tiers-lieux/index.html b/docs/tags/tiers-lieux/index.html index 6e752341..52da0ddf 100644 --- a/docs/tags/tiers-lieux/index.html +++ b/docs/tags/tiers-lieux/index.html @@ -4,7 +4,7 @@ One doc tagged with "tiers-lieux" | TiBillet - + diff --git a/docs/tags/time-currencies/index.html b/docs/tags/time-currencies/index.html index 47150c57..24d27b6c 100644 --- a/docs/tags/time-currencies/index.html +++ b/docs/tags/time-currencies/index.html @@ -4,7 +4,7 @@ One doc tagged with "time currencies" | TiBillet - + diff --git a/docs/tags/venue/index.html b/docs/tags/venue/index.html index abed2d55..ac2001a3 100644 --- a/docs/tags/venue/index.html +++ b/docs/tags/venue/index.html @@ -4,7 +4,7 @@ 2 docs tagged with "venue" | TiBillet - + diff --git a/index.html b/index.html index b28240dc..98a22d4d 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ TiBillet | TiBillet - + diff --git a/roadmap/index.html b/roadmap/index.html index fefab59b..e7ef9aae 100644 --- a/roadmap/index.html +++ b/roadmap/index.html @@ -4,7 +4,7 @@ Fonctionnalités | TiBillet - +