diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..ec56fe3 --- /dev/null +++ b/404.html @@ -0,0 +1,922 @@ + + + + + + + + + + + + + + + + + + + Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..54a134c --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +docs.agorakit.org diff --git a/advanced_config.html b/advanced_config.html new file mode 100644 index 0000000..4be06d1 --- /dev/null +++ b/advanced_config.html @@ -0,0 +1,1111 @@ + + + + + + + + + + + + + + + + + + + + + + + Advanced configurations - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Advanced configurations

+ +

Setup inbound emails

+

This additional step allows you to have one mailbox for each group so members can post by email to create discussions and reply to discussions emails to create new comments.

+
+

Note

+

Inbound email support is experimental but in use on several instances. You might however experience bugs, please report them if it happens to your installation.

+
+
    +
  • You need an email address on a server with imap support. It must either be a catch all on a subdomain (or even on a domain) or a server supporting "+" addressing (gmail for example allows this).
  • +
  • You need the php imap extension
  • +
  • Configuration happens in your .env
  • +
+

Let's say you installed Agorakit on agora.example.org :

+
    +
  • Create a catchall mailbox on * .@agora.example.org
  • +
  • Edit your .env file and add/define the following settings:
  • +
+
# Inbox mail box server settings, use for incoming emails.
+# Set INBOX_DRIVER to null to disable this feature
+INBOX_DRIVER=imap
+INBOX_HOST=yourmailhost.tld
+INBOX_USERNAME=username of the mailbox
+INBOX_PASSWORD=password of the mailbox
+INBOX_PREFIX=
+INBOX_SUFFIX=@agora.example.org
+
+

Definign prefixes and suffixes

+

You need to fill prefix and suffix. Two cases there :

+
    +
  • +

    For a catch all there is no prefix. The suffix in the above example would be @agora.example.org . This will create emails like group-slug@agora.example.com

    +
  • +
  • +

    On the other hand if you use "+" addressing (a gmail box for instance, let's call it agorakit@gmail.com),

    +
      +
    • prefix will be agorakit+
    • +
    • suffix will be @gmail.com
    • +
    +

    This will create emails like agorakit+group-slug@gmail.com

    +
  • +
+

If you enable inbound email, the mailbox will be automatically checked and processed email will be put in a "processed" folder under INBOX. Failed emails will be similarly put a "failed" folder under INBOX for inspection.

+

External authentification

+
+

Info

+

External authentification has been removed. I have fery few (if any) people ask for it. It is a privacy invading feature so no developement has been done on ths front. Feel free to submit PR if you want this.

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/artisan.html b/artisan.html new file mode 100644 index 0000000..2a90364 --- /dev/null +++ b/artisan.html @@ -0,0 +1,981 @@ + + + + + + + + + + + + + + + + + + + + + + + Useful artisan commands - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Useful artisan commands

+

Agorakit provides some useful artisan commands :

+
    +
  • agorakit:checkmailbox Check the configured email imap server to allow post by email functionality
  • +
  • agorakit:cleanupdatabase Cleanup the database, delete forever soft deleted models and unverified users older than 30 days
  • +
  • agorakit:convertfiles Convert the files from the old flat path based storage to the new storage, putting back their initila filename and moving the file to public directory. Use this once if you already have files on your install and if your install is older than november 2016.
  • +
  • agorakit:convertfolderstotags Convert all folders to the new tag based system. Add the tags represneting parent folder to each file
  • +
  • agorakit:deletefiles Delete files from storage after 30 days of deletion in database
  • +
  • agorakit:export Export a group to a zip file (work in progress)
  • +
  • agorakit:import Import a group from an Agorakit export zip file (work in progress)
  • +
  • agorakit:populatefilesize Set filesize in the files table using real filesize from the filesystem. Use this if you installed agorakit before november 2017
  • +
  • agorakit:sendnotifications Sends all the pending notifications to all users who requested it. This might take time. Call this frequently to avoid trouble
  • +
  • agorakit:sendreminders Sends all reminders to participants who asked for it - call exactly every 5 minutes, no more, no less :-)
  • +
+
+

Warning

+

Most of those commands are already used by the cron job, so they don't need to be called manually. But they might be useful for debugging and development.

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/assets/external/fonts.googleapis.com/css.49ea35f2.css b/assets/external/fonts.googleapis.com/css.49ea35f2.css new file mode 100644 index 0000000..14eb3ad --- /dev/null +++ b/assets/external/fonts.googleapis.com/css.49ea35f2.css @@ -0,0 +1,594 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 700; + font-display: fallback; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 new file mode 100644 index 0000000..d88dd2b Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 new file mode 100644 index 0000000..0f8ca12 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 new file mode 100644 index 0000000..317f651 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 new file mode 100644 index 0000000..0e37f98 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 new file mode 100644 index 0000000..e0934d9 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 new file mode 100644 index 0000000..d95067a Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 new file mode 100644 index 0000000..83874b7 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 new file mode 100644 index 0000000..50a2805 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 new file mode 100644 index 0000000..efbe79a Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 new file mode 100644 index 0000000..ea329ab Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 new file mode 100644 index 0000000..993b327 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 new file mode 100644 index 0000000..d3cb894 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 new file mode 100644 index 0000000..1283c45 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 new file mode 100644 index 0000000..851fedb Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 new file mode 100644 index 0000000..8f20a2c Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 new file mode 100644 index 0000000..bed8708 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 new file mode 100644 index 0000000..e1f558c Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 new file mode 100644 index 0000000..688c713 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzI.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzI.woff2 new file mode 100644 index 0000000..9dc0be8 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzI.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 new file mode 100644 index 0000000..3e5facb Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 new file mode 100644 index 0000000..1125cc0 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 new file mode 100644 index 0000000..a57fbdc Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 new file mode 100644 index 0000000..72226f5 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 new file mode 100644 index 0000000..b61eed3 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 new file mode 100644 index 0000000..a26ba15 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 new file mode 100644 index 0000000..a69131b Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 new file mode 100644 index 0000000..14af54a Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 new file mode 100644 index 0000000..a7026d4 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 new file mode 100644 index 0000000..41637e5 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 new file mode 100644 index 0000000..22f6f53 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 new file mode 100644 index 0000000..19fc4b1 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 new file mode 100644 index 0000000..98f53f7 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 new file mode 100644 index 0000000..660850e Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 new file mode 100644 index 0000000..327eb66 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 new file mode 100644 index 0000000..c175453 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 new file mode 100644 index 0000000..a7f32b6 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxK.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxK.woff2 new file mode 100644 index 0000000..2d7b215 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxK.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 new file mode 100644 index 0000000..a4962e9 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu72xKOzY.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu72xKOzY.woff2 new file mode 100644 index 0000000..e3d708f Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu72xKOzY.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 new file mode 100644 index 0000000..20c87e6 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 new file mode 100644 index 0000000..cfd043d Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 new file mode 100644 index 0000000..47ce460 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 new file mode 100644 index 0000000..022274d Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSV0mf0h.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 new file mode 100644 index 0000000..48edd1b Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSZ0mf0h.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 new file mode 100644 index 0000000..cb41535 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSd0mf0h.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 new file mode 100644 index 0000000..1d988a3 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0mQ.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 new file mode 100644 index 0000000..11e6a46 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSt0mf0h.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 new file mode 100644 index 0000000..50fb8e7 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSx0mf0h.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 new file mode 100644 index 0000000..1f1c97f Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtElOUlYIw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 new file mode 100644 index 0000000..1623005 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEleUlYIw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 new file mode 100644 index 0000000..6f232c3 Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEluUlYIw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 new file mode 100644 index 0000000..a3e5aef Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEm-Ul.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 new file mode 100644 index 0000000..f73f27d Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEmOUlYIw.woff2 differ diff --git a/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 new file mode 100644 index 0000000..135d06e Binary files /dev/null and b/assets/external/fonts.gstatic.com/s/robotomono/v23/L0xdDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnAIe2Imhk1T8rbociImtEn-UlYIw.woff2 differ diff --git a/assets/external/unpkg.com/iframe-worker/shim.js b/assets/external/unpkg.com/iframe-worker/shim.js new file mode 100644 index 0000000..5f1e232 --- /dev/null +++ b/assets/external/unpkg.com/iframe-worker/shim.js @@ -0,0 +1 @@ +"use strict";(()=>{function c(s,n){parent.postMessage(s,n||"*")}function d(...s){return s.reduce((n,e)=>n.then(()=>new Promise(r=>{let t=document.createElement("script");t.src=e,t.onload=r,document.body.appendChild(t)})),Promise.resolve())}var o=class extends EventTarget{constructor(e){super();this.url=e;this.m=e=>{e.source===this.w&&(this.dispatchEvent(new MessageEvent("message",{data:e.data})),this.onmessage&&this.onmessage(e))};this.e=(e,r,t,i,m)=>{if(r===`${this.url}`){let a=new ErrorEvent("error",{message:e,filename:r,lineno:t,colno:i,error:m});this.dispatchEvent(a),this.onerror&&this.onerror(a)}};let r=document.createElement("iframe");r.hidden=!0,document.body.appendChild(this.iframe=r),this.w.document.open(),this.w.document.write(` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

How to contact us

+ +

You can contact the Agorakit team directly on info [at] agorakit [dot] org

+

You can also join the official developer's group here, on Agorakit of course : https://app.agorakit.org/groups/39

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/contribute.html b/contribute.html new file mode 100644 index 0000000..2592a55 --- /dev/null +++ b/contribute.html @@ -0,0 +1,1106 @@ + + + + + + + + + + + + + + + + + + + + + + + Introduction - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Introduction

+ +
+

You'd like to contribute to agorakit? Thank you !

+
+

You are a communication & support person ?

+
    +
  • Talk about the project to people who might need it
  • +
  • Install it for non technical users/friends/groups
  • +
  • Help on the translations / add new translations
  • +
  • Write end users documentation
  • +
  • Enhance the presentation website with pictures and better texts. It's all there waiting for your pull requests : https://github.com/agorakit/agorakit-website
  • +
  • Support existing users on the Agorakit shared server at https://app.agorakit.org
  • +
  • Send me an email if you use the tool or are considering it. I love feedback! (info (at) agorakit.org)
  • +
+
+

There are tons of way to contribute, everything is highly appreciated.

+
+

You are a developer proficient with laravel/php/html/css/js ?

+
    +
  • You are a backend developer with experience of the Laravel framework: add new features, fix bug, write tests, document everything. I happily accept pull requests if they pass unit tests and follow the project philosophy
  • +
  • You are a frontend developer with experience of the Laravel framework: the current UI is not pretty, make it brilliant. Fix UX as you see fit. I happily accept pull requests if they pass unit tests and follow the project philosophy. We don't want the project to become a one page app powered by the latest "à la mode" js framework.
  • +
  • If you have some time to give to this project, there are already some issues to fix (see. https://github.com/agorakit/agorakit/issues). Whether you have one hour per day or one hour per month, help is really appreciated! And remember, "talk is silver, code is gold" :-)
  • +
  • Let's talk in the issue queue if your idea involves big changes.
  • +
+

Make a branch of the master branch, work on your branch and create a pull request when ready. See http://scottchacon.com/2011/08/31/github-flow.html

+

Financial support

+
    +
  • Consider donating to help me work on it (check https://agorakit.org)
  • +
  • Help me find ways to support financially the project (sponsorship, public subsidies, etc.)
  • +
  • Financial support is btw the key to offer a free hosted version in the future for those groups that can't afford to pay.
  • +
+

Licence

+

All the work is open source (AGPL) +- Your work will benefit every interested citizen initiative. We already have 1000's of users who might benefit from your help. The work is made under the AGPL licence. +- It also means that if you use this codebase, you must contribute back your changes.

+

Please drop a line to info (at) agorakit.org if you are interested or have any question.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/development.html b/development.html new file mode 100644 index 0000000..705a4e5 --- /dev/null +++ b/development.html @@ -0,0 +1,1003 @@ + + + + + + + + + + + + + + + + + + + + + + + Setup a development server - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Contributing to Agorakit

+

You want to contribute to the project? Great! Any idea is welcome.

+
    +
  • Please discuss the bug or feature request in the issue queue first.
  • +
  • Check the licence (AGPL) to see if it fits your contribution model
  • +
  • Follow Laravel best practices
  • +
  • We use Unpoly js for spa like functionality, read a bit about it since it's not as popular as other options (think of it as turbolinks on steroids)
  • +
  • We use Bootstrap flavored by tabler.io
  • +
+

Developement server

+

Using Laravel Sail

+

Sail is a docker wrapper to ease local development. It's a really cool and easy way to have a perfect local server for devs. +Laravel sail works out of the box in this project. Read the Sail documentation for more informations.

+

This is what I use on my main workstation (linux based) since it's very reproductible.

+

Basically, sail up will start a developement server

+

Using artisan serve

+

If you want to start a local server for development:

+
$ php artisan serve
+
+

The install will be available to 127.0.0.1:8000

+

There are a lot of other options, check the laravel doc and ecosystem to have an overview of the options for local developement.

+

Seed the DB

+

First follow the installation instructions including the creation of sample content using :

+
$ php artisan db:seed
+
+

Working on design and css

+

I ditched all build steps, now everything happens in a flat custom.css file.

+

All external JS and CSS are served from various CDN's. At some point the files will be re-served from local, when everything will be stabilized, and if there are real benefits of doing so.

+

No npm, no node, no tailwind, no purge, no minifier, no trouble :)

+

Testing your code

+

Agorakit is tested using the Laravel testing framework.

+

In order to test, you need to have an existing testing database. Just create an additional empty DB, for instance agorakit_testing and check in the phpunit.xml file that everything matches.

+

Before comiting code, you should either write more tests (in this case you deserve a cookie). Or at least check that you didn't break anything by simply typing::

+
php artisan test
+
+

...in the root of your project.

+

No error should appear (provided that you have everything correctly set up.

+

We use travis ci to run all those tests on commit so it will be done automatically for you at some point :-)

+

Writing tests

+

Don't hesitate to write tests. We favor well defined tasks an end user would really accomplish, like registering, creating an account, posting, uploading, etc... It has served us very well in the past to spot errors and it really mirrors real use cases. Although we are open to other kind of tests as well...

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/documentation.html b/documentation.html new file mode 100644 index 0000000..9f5042e --- /dev/null +++ b/documentation.html @@ -0,0 +1,1072 @@ + + + + + + + + + + + + + + + + + + + + + + + Writing documentation - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Contribute to the documentation

+

Documentation is written in markdown and the website is statically built using Mkdocs material

+
+

Note

+

New languages, better wording, new sections, more visuals, any fixes even small ones are welcome!

+
+

How to contribute ?

+
    +
  • Create a Github account
  • +
  • Fork the Agorakit repository
  • +
  • Edit the documentation files in the /docs/ directory
  • +
  • Create a pull request to ask your changes to be merged
  • +
+
+

Tip

+

Using Visual Studio Code to work on code and markdown files is a reasonably simple option. You additionaly get a built in user interface for git and github integration, which is nice for beginners.

+
+

How to build the docs ?

+

Install mkdocs material and a few plugins.

+
pip install mkdocs-material
+pip install markdown-callouts
+pip install mkdocs-static-i18n
+
+

Then start the built-in webserver to preview your work on the documentation.

+
mkdocs serve
+
+

The documentation is currently served by github pages. The workflow for publication is localted here : https://github.com/agorakit/documentation/actions/workflows/ci.yml

+

How this works ? +Each time a commit is made on main or master branch, the doc are built using https://github.com/mhausenblas/mkdocs-deploy-gh-pages +(this is a git action that does the work for us)

+

The resulting files are put into the GH-branch of the documentation repository which is then serbed using the github "pages" feature.

+

It's a bit painful to configure but it seems that once done, it works.

+

See https://squidfunk.github.io/mkdocs-material/getting-started/ for more informations on how the documentation builder works.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/first_steps.html b/first_steps.html new file mode 100644 index 0000000..d86bbfc --- /dev/null +++ b/first_steps.html @@ -0,0 +1,1046 @@ + + + + + + + + + + + + + + + + + + + + + + + First steps after install - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

First steps after installation

+

If you just installed Agorakit on a server, take some time to configure it correctly for your use case.

+

Introduction text on the homepage

+

Set an intro text on the homepage for newcomers : go to the admin page from your user profile dropdown. +Using the editor you can add external images and whatever you want.

+

Check all the admin settings

+

Go to the admin menu (from your user profile dropdown) and check all the settings there. Pay attention to the various permissions and group types you allow on your server.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/fr/advanced_config.html b/fr/advanced_config.html new file mode 100644 index 0000000..438cbf1 --- /dev/null +++ b/fr/advanced_config.html @@ -0,0 +1,1109 @@ + + + + + + + + + + + + + + + + + + + + + + + Advanced configurations - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Advanced configurations

+ +

Configurer les courriels entrants

+

Cette étape supplémentaire vous permet d'avoir une boîte aux lettres pour chaque groupe afin que les membres puissent envoyer des messages par courriel pour créer des discussions et répondre aux courriels des discussions pour créer de nouveaux commentaires.

+

! !! note + Le support des emails entrants est expérimental mais utilisé sur plusieurs instances. Il est possible que vous rencontriez des bogues, veuillez les signaler si cela se produit dans votre installation.

+
    +
  • Vous avez besoin d'une adresse email sur un serveur supportant l'imap. Il doit s'agir d'une adresse "catch all" sur un sous-domaine (ou même sur un domaine) ou d'un serveur supportant l'adressage "+" (gmail par exemple le permet).
  • +
  • Vous avez besoin de l'extension php imap
  • +
  • La configuration se fait dans votre .env
  • +
+

Disons que vous avez installé Agorakit sur agora.example.org :

+
    +
  • Créer une boîte aux lettres catchall sur * .@agora.example.org
  • +
  • Editez votre fichier .env et ajoutez/définissez les paramètres suivants :
  • +
+
# Paramètres du serveur de la boîte aux lettres, à utiliser pour les courriels entrants.
+# Définissez INBOX_DRIVER à null pour désactiver cette fonctionnalité
+INBOX_DRIVER=imap
+INBOX_HOST=votremailhost.tld
+INBOX_USERNAME=nom d'utilisateur de la boîte aux lettres
+INBOX_PASSWORD=mot de passe de la boîte aux lettres
+INBOX_PREFIX=
+INBOX_SUFFIX=@agora.example.org
+
+

Définir les préfixes et les suffixes

+

Vous devez renseigner le préfixe et le suffixe. Il y a deux cas de figure :

+
    +
  • +

    Pour un catch all, il n'y a pas de préfixe. Le suffixe dans l'exemple ci-dessus serait @agora.example.org . Cela créera des courriels comme group-slug@agora.example.com

    +
  • +
  • +

    En revanche, si vous utilisez l'adresse "+" (une boîte gmail par exemple, appelons-la agorakit@gmail.com),

    +
      +
    • le préfixe sera agorakit+
    • +
    • le suffixe sera @gmail.com.
    • +
    +

    Cela créera des emails comme agorakit+group-slug@gmail.com

    +
  • +
+

Si vous activez les emails entrants, la boîte aux lettres sera automatiquement vérifiée et les emails traités seront placés dans un dossier "processed" sous INBOX. Les courriels échoués seront également placés dans un dossier "failed" sous INBOX pour inspection.

+

Authentification externe

+

! !! info + L'authentification externe a été supprimée. Je n'ai que très peu (voire pas du tout) de personnes qui l'ont demandée. Il s'agit d'une fonctionnalité qui porte atteinte à la vie privée, c'est pourquoi aucun développement n'a été fait dans ce sens. N'hésitez pas à soumettre un PR si vous le souhaitez.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/artisan.html b/fr/artisan.html new file mode 100644 index 0000000..56c351d --- /dev/null +++ b/fr/artisan.html @@ -0,0 +1,980 @@ + + + + + + + + + + + + + + + + + + + + + + + Useful artisan commands - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Commandes artisanales utiles

+

Agorakit fournit quelques commandes artisan utiles :

+
    +
  • agorakit:checkmailbox Vérifier le serveur email imap configuré pour permettre la fonctionnalité de postage par email
  • +
  • agorakit:cleanupdatabase Nettoie la base de données, supprime pour toujours les modèles supprimés et les utilisateurs non vérifiés de plus de 30 jours.
  • +
  • agorakit:convertfiles Convertit les fichiers de l'ancien stockage basé sur le chemin plat vers le nouveau stockage, en remettant leur nom de fichier initial et en déplaçant le fichier vers le répertoire public. Utilisez ceci une fois si vous avez déjà des fichiers sur votre installation et si votre installation est antérieure à novembre 2016.
  • +
  • agorakit:convertfolderstotags Convertit tous les dossiers au nouveau système basé sur les tags. Ajouter les tags représentant le dossier parent à chaque fichier.
  • +
  • agorakit:deletefiles Supprime les fichiers du stockage après 30 jours de suppression dans la base de données.
  • +
  • agorakit:export Exporter un groupe vers un fichier zip (travail en cours)
  • +
  • agorakit:import Importer un groupe depuis un fichier zip d'exportation Agorakit (travail en cours)
  • +
  • agorakit:populatefilesize Fixe la taille des fichiers dans la table des fichiers en utilisant la taille réelle du système de fichiers. A utiliser si vous avez installé Agorakit avant novembre 2017.
  • +
  • agorakit:sendnotifications Envoie toutes les notifications en attente à tous les utilisateurs qui l'ont demandé. Cela peut prendre du temps. Appelez ceci fréquemment pour éviter les problèmes
  • +
  • agorakit:sendreminders Envoie tous les rappels aux participants qui l'ont demandé - appeler exactement toutes les 5 minutes, ni plus, ni moins :-)
  • +
+

ATTENTION : La plupart de ces commandes sont déjà utilisées par le job cron, elles n'ont donc pas besoin d'être appelées manuellement. Mais elles peuvent être utiles pour le débogage et le développement.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/contact.html b/fr/contact.html new file mode 100644 index 0000000..bf2517a --- /dev/null +++ b/fr/contact.html @@ -0,0 +1,958 @@ + + + + + + + + + + + + + + + + + + + + + How to contact us - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

How to contact us

+ +

Vous pouvez contacter l'équipe d'Agorakit directement sur info [at] agorakit [dot] org.

+

Vous pouvez également rejoindre le groupe officiel de développeurs ici, sur Agorakit bien sûr : https://app.agorakit.org/groups/39

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/contribute.html b/fr/contribute.html new file mode 100644 index 0000000..fe0a230 --- /dev/null +++ b/fr/contribute.html @@ -0,0 +1,1108 @@ + + + + + + + + + + + + + + + + + + + + + + + Introduction - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Introduction

+ +
+

Vous souhaitez contribuer à agorakit ? Merci d'avance !

+
+

Vous êtes une personne de communication et de soutien ?

+
    +
  • Parler du projet aux personnes qui pourraient en avoir besoin
  • +
  • L'installer pour les utilisateurs/amis/groupes non techniques
  • +
  • Aider sur les traductions / ajouter de nouvelles traductions
  • +
  • Rédiger la documentation destinée aux utilisateurs finaux
  • +
  • Améliorer le site web de présentation avec des images et des textes de meilleure qualité. Tout est là, attendant vos pull requests : https://github.com/agorakit/agorakit-website
  • +
  • Supporter les utilisateurs existants sur le serveur partagé Agorakit : https://app.agorakit.org
  • +
  • Envoyez-moi un email si vous utilisez l'outil ou si vous envisagez de le faire. J'aime les retours d'expérience ! (info (at) agorakit.org)
  • +
+
+

Il y a des tonnes de façons de contribuer, tout est très apprécié.

+
+

Vous êtes un développeur maîtrisant laravel/php/html/css/js ?

+
    +
  • Vous êtes un développeur backend avec une expérience du framework Laravel : ajouter de nouvelles fonctionnalités, corriger des bugs, écrire des tests, tout documenter. J'accepte volontiers les pull requests si elles passent les tests unitaires et suivent la philosophie du projet.
  • +
  • Vous êtes un développeur frontend avec une expérience du framework Laravel : l'interface utilisateur actuelle n'est pas jolie, rendez-la brillante. Corrigez l'UX comme vous l'entendez. J'accepte volontiers les pull requests si elles passent les tests unitaires et suivent la philosophie du projet. Nous ne voulons pas que le projet devienne une application à une page propulsée par le dernier framework js "à la mode".
  • +
  • Si vous avez du temps à consacrer à ce projet, il y a déjà des problèmes à résoudre (voir https://github.com/agorakit/agorakit/issues). Que vous disposiez d'une heure par jour ou d'une heure par mois, votre aide est vraiment appréciée ! Et rappelez-vous, "la parole est d'argent, le code est d'or" :-)
  • +
  • Parlons-en dans la file d'attente des problèmes si votre idée implique des changements importants.
  • +
+

Créez une branche de la branche principale, travaillez sur votre branche et créez une demande d'extraction lorsque vous êtes prêt. Voir http://scottchacon.com/2011/08/31/github-flow.html

+

Soutien financier

+
    +
  • Envisagez de faire un don pour m'aider à travailler sur le projet (consultez https://agorakit.org)
  • +
  • Aidez-moi à trouver des moyens de soutenir financièrement le projet (sponsoring, subventions publiques, etc.)
  • +
  • Le soutien financier est la clé pour offrir une version hébergée gratuite à l'avenir pour les groupes qui n'ont pas les moyens de payer.
  • +
+

Licence

+

Tout le travail est open source (AGPL) +- Votre travail bénéficiera à toute initiative citoyenne intéressée. Nous avons déjà des milliers d'utilisateurs qui pourraient bénéficier de votre aide. Le travail est réalisé sous licence AGPL. +- Cela signifie également que si vous utilisez cette base de code, vous devez contribuer à vos modifications.

+

N'hésitez pas à envoyer un message à info (at) agorakit.org si vous êtes intéressé ou si vous avez des questions.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/delete_content.html b/fr/delete_content.html new file mode 100644 index 0000000..0a03dc2 --- /dev/null +++ b/fr/delete_content.html @@ -0,0 +1,970 @@ + + + + + + + + + + + + + + + + + + + Suppression de contenu - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Suppression de contenu

+

La suppression de contenu sur Agorakit respecte une procédure qui permet de répondre à différents impératifs:

+
    +
  • le droit de chacun et chacune à supprimer ses productions
  • +
  • permettre de revenir en arrière en cas de fausse manoeuvre
  • +
  • permettre de changer d'avis pendant un certain temps
  • +
  • garder les contributions collectives en cas de départ d'un participant
  • +
+

Quand un contenu est effacé, celui-ci est marqué comme effacé dans la base de donnée et n'apparait plus. Un administrateur d'instance peut remettre en ligne un contenu effacé en se rendant dans le menu "admin > récupérer du contenu".

+

Le contenu marqué comme effacé est définitivement effacé (physiquement) de la base de donnée après 30 jours. Il n'est plus possible après ce délai de récupérer le contenu.

+

Suppression de compte utilisateur

+

Si un utilisateur décide d'effacer son compte, il peut au choix :

+
    +
  • anonymiser son contenu (tout son contenu est transféré à un utilisateur anonyme)
  • +
  • demander que tout le contenu qu'il a produit soit effacé
  • +
+

Les discussions qui ont des commentaires sont dans tous les cas assignées à l'utilisateur anonyme afin de ne pas perdre les contributions des autres utilisateurs. +Il n'est pas possible d'effacer individuellement une discussion sous laquelle il y a des commentaires.

+

Un utilisateur qui est le seul administrateur d'un groupe ne peux pas quitter le groupe.

+

Restauration d'un élément effacé

+

Un administrateur d'instance peut restaurer tout contenu effacé pendant la période de rétention (30 jours par défaut). Il suffit de se rendre dans Admin > settings > recover content et de choisir le ou les éléments à restaurer.

+

Nettoyage de la base de donnée

+

Si Agorakit est installé correctement (avec les tâches "cron" récurentes), la base de donnée va être automatiquement nettoyée afin d'être en conformité avec ce qui est indiqué ci-dessus. +Le nombre de jours de rétention des informations avant suppression définitive est configurable et fixé par défaut à 30.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/development.html b/fr/development.html new file mode 100644 index 0000000..70a7c98 --- /dev/null +++ b/fr/development.html @@ -0,0 +1,1005 @@ + + + + + + + + + + + + + + + + + + + + + + + Setup a development server - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Contribuer à Agorakit

+

Vous voulez contribuer au projet ? C'est très bien ! Toute idée est la bienvenue.

+
    +
  • Veuillez d'abord discuter du bogue ou de la demande de fonctionnalité dans la file d'attente des problèmes.
  • +
  • Vérifiez la licence (AGPL) pour voir si elle correspond à votre modèle de contribution.
  • +
  • Suivez les meilleures pratiques de Laravel
  • +
  • Nous utilisons Unpoly js pour les fonctionnalités de type spa, lisez un peu à son sujet car il n'est pas aussi populaire que les autres options (pensez-y comme des turbolinks sur les stéroïdes).
  • +
  • Nous utilisons Bootstrap aromatisé par tabler.io
  • +
+

Serveur de développement

+

Utilisation de Laravel Sail

+

Sail est un wrapper docker pour faciliter le développement local. C'est un moyen vraiment cool et facile d'avoir un serveur local parfait pour les développeurs. +Laravel Sail fonctionne d'emblée dans ce projet. Lisez la documentation de Sail pour plus d'informations.

+

C'est ce que j'utilise sur ma station de travail principale (basée sur linux) car c'est très reproductible.

+

En gros, sail up va démarrer un serveur de développement

+

Utilisation de artisan serve

+

Si vous voulez démarrer un serveur local pour le développement :

+
$ php artisan serve
+
+

L'installation sera disponible pour 127.0.0.1:8000

+

Il y a beaucoup d'autres options, consultez la documentation et l'écosystème de Laravel pour avoir une vue d'ensemble des options pour le développement local.

+

Création de la base de données

+

Suivez d'abord les instructions d'installation, y compris la création d'un échantillon de contenu en utilisant :

+
$ php artisan db:seed
+
+

Travailler sur le design et les css

+

J'ai supprimé toutes les étapes de construction, maintenant tout se passe dans un fichier custom.css plat.

+

Tous les JS et CSS externes sont servis par différents CDN. A un moment donné, les fichiers seront re-servis en local, quand tout sera stabilisé, et s'il y a de réels avantages à le faire.

+

Pas de npm, pas de node, pas de tailwind, pas de purge, pas de minifier, pas de problème :)

+

Tester votre code

+

Agorakit est testé en utilisant le framework de test Laravel.

+

Pour tester, vous devez avoir une base de données de test existante. Il suffit de créer une nouvelle base de données vide, par exemple agorakit_testing et de vérifier dans le fichier phpunit.xml que tout correspond.

+

Avant de commencer le code, vous devriez soit écrire plus de tests (dans ce cas, vous méritez un cookie). Ou au moins vérifier que vous n'avez rien cassé en tapant simplement: :

+
php artisan test
+
+

...à la racine de votre projet.

+

Aucune erreur ne devrait apparaître (à condition que tout soit correctement configuré).

+

Nous utilisons travis ci pour exécuter tous ces tests lors du commit, donc cela sera fait automatiquement pour vous à un moment donné :-)

+

Ecriture des tests

+

N'hésitez pas à écrire des tests. Nous privilégions les tâches bien définies qu'un utilisateur final accomplirait réellement, comme l'inscription, la création d'un compte, la publication, le téléchargement, etc... Cela nous a très bien servi dans le passé pour repérer les erreurs et cela reflète vraiment les cas d'utilisation réels. Bien que nous soyons ouverts à d'autres types de tests...

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/discussions.html b/fr/discussions.html new file mode 100644 index 0000000..7561281 --- /dev/null +++ b/fr/discussions.html @@ -0,0 +1,995 @@ + + + + + + + + + + + + + + + + + + + Créer des discussions - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Créer des discussions

+

Choisissez un groupe et depuis l'onglet "Discussions" vous pouvez "Créer une discussion". Mentionnez un titre et un texte au minimum. Vous pouvez aussi ajouter des mots clé ou tags afin de mieux classer les discussions et aider les autres à s'y retrouver.

+

Joindre un fichier

+

Dans l'éditeur de texte, vous pouvez joindre un fichier en le faisant glisser dessus ou en cliquant sur le bouton "image" qui permet non seulement d'insérer une image mais également tout type de fichier. Lors d'un "drag and drop" (glissé déposé de fichier), le système envoit automatiquement votre fichier et insère là où se trouve votre curseur une référence à ce fichier sous la forme d'un f:xx (xx étant la référence de votre fichier). Lors de l'affichage de votre discussion ou de votre commentaire, un apperçu du fichier sera automatiquement généré.

+

Le fichier apparait également dans l'onbglet "fichiers" de votre groupe.

+

Mentionner une autre personne

+

Dans l'éditeur de texte, tapez simplement un @ , une liste des membres du groupe apparait et vous permet de mentionner une ou plusieurs personnes. Celles-ci recevront un mail instantanément avec votre commentaire. C'est pratique quand vous souhaitez avoir une réponse rapide à votre question.

+

Effacer un commentaire ou une discussion

+

Cliquez simplement sur les troios petits points à droite de la discussion ou du commentaire en question : (...) et choisissez l'option "Effacer". +L'auteur.e d'un message peut toujours l'effacer. Un.e admin de groupe peux tout effacer.

+
+

Warning

+

Le fait d'effacer une discussion n'efface pas les fichiers joints à cette discussion.

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/documentation.html b/fr/documentation.html new file mode 100644 index 0000000..66bcfdc --- /dev/null +++ b/fr/documentation.html @@ -0,0 +1,1068 @@ + + + + + + + + + + + + + + + + + + + + + + + Writing documentation - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Contribuer à la documentation

+

La documentation est écrite en markdown et le site web est construit statiquement en utilisant Mkdocs material

+

NOTE : Nouveaux langages, meilleure formulation, nouvelles sections, plus de visuels, toutes les corrections même petites sont les bienvenues !

+

Comment contribuer ?

+
    +
  • Créer un compte Github
  • +
  • Créer un dépôt Agorakit (Fork)
  • +
  • Editez les fichiers de documentation dans le répertoire /docs/.
  • +
  • Créez une pull request pour demander à ce que vos changements soient fusionnés
  • +
+

CONSEIL : L'utilisation de [Visual Studio Code] (https://code.visualstudio.com/) pour travailler sur du code et des fichiers markdown est une option raisonnablement simple. Vous disposez en outre d'une interface utilisateur intégrée pour l'intégration de git et de github, ce qui est intéressant pour les débutants.

+

Comment construire la documentation ?

+

Installez mkdocs material et quelques plugins.

+
pip install mkdocs-material
+pip install markdown-callouts
+pip install mkdocs-static-i18n
+
+

Démarrez ensuite le serveur web intégré pour prévisualiser votre travail sur la documentation.

+
mkdocs serve
+
+

La documentation est actuellement servie par des pages github. Le processus de publication est localisé ici : https://github.com/agorakit/documentation/actions/workflows/ci.yml

+

Comment cela fonctionne-t-il ? +A chaque fois qu'un commit est fait sur la branche principale ou master, la documentation est construite en utilisant https://github.com/mhausenblas/mkdocs-deploy-gh-pages +(c'est une action git qui fait le travail pour nous)

+

Les fichiers résultants sont placés dans la branche GH du dépôt de documentation qui est ensuite sérialisée en utilisant la fonctionnalité "pages" de github.

+

C'est un peu difficile à configurer mais il semble qu'une fois que c'est fait, ça fonctionne.

+

Voir https://squidfunk.github.io/mkdocs-material/getting-started/ pour plus d'informations sur le fonctionnement du constructeur de documentation.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/first_steps.html b/fr/first_steps.html new file mode 100644 index 0000000..cf4eab3 --- /dev/null +++ b/fr/first_steps.html @@ -0,0 +1,1048 @@ + + + + + + + + + + + + + + + + + + + + + + + First steps after install - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Premiers pas après l'installation

+

Si vous venez d'installer Agorakit sur un serveur, prenez le temps de le configurer correctement pour votre cas d'utilisation.

+

Texte d'introduction sur la page d'accueil

+

Définissez un texte d'introduction sur la page d'accueil pour les nouveaux arrivants : allez sur la page d'administration à partir du menu déroulant de votre profil d'utilisateur. +En utilisant l'éditeur, vous pouvez ajouter des images externes et tout ce que vous voulez.

+

Vérifier tous les paramètres d'administration

+

Allez dans le menu d'administration (à partir du menu déroulant de votre profil d'utilisateur) et vérifiez tous les paramètres qui s'y trouvent. Faites attention aux différentes permissions et aux types de groupes que vous autorisez sur votre serveur.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/group.html b/fr/group.html new file mode 100644 index 0000000..310f72e --- /dev/null +++ b/fr/group.html @@ -0,0 +1,1222 @@ + + + + + + + + + + + + + + + + + + + + + + + Creating & managing a group - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Créez et gérez vos groupes

+

Créer des groupes

+

Créez un ou plusieurs groupes. Un groupe de bienvenue et un groupe de test sont souvent utiles.

+

Vous pouvez choisir le type de groupe à créer

+
    +
  • Un groupe ouvert a un contenu public et est ouvert aux adhésions
  • +
  • Un groupe privé a un contenu privé et l'adhésion se fait uniquement sur invitation (l'administrateur doit accepter les nouveaux membres).
  • +
  • Un groupe secret n'est visible que par les membres existants. Parfait pour votre prochaine intrigue :-)
  • +
+

! !! note + Les prochaines versions d'Agorakit pourraient inclure un contrôle plus granulaire des types de groupes et de l'accès aux membres. Votre contribution est précieuse pour améliorer cette partie.

+

Paramètres du groupe

+

Si vous êtes administrateur d'un groupe, vous aurez un onglet "admin" sur le(s) groupe(s) que vous gérez. Vous pouvez y gérer beaucoup de choses dans votre groupe.

+

Le menu "configuration

+

Cet onglet vous permet d'ajouter une description à votre groupe, de définir les tags du groupe, de définir un emplacement (adresse) et de définir le type de groupe (voir ci-dessus).

+

Le menu "tags

+

Ce menu vous permet de choisir la stratégie de marquage que vous souhaitez pour votre groupe :

+
    +
  • Balisage libre : tout le monde peut baliser le contenu avec n'importe quelle étiquette.
  • +
  • Tagging contrôlé : vous décidez quels tags sont autorisés dans votre groupe.
  • +
+

! !! note + Bien que le balisage libre soit agréable, il est souvent préférable de se fixer ensemble un ensemble de balises et de s'y tenir dans votre groupe. "Moins c'est plus" et "chacun a une façon différente d'organiser le contenu, alors tenons-nous en à une seule façon de le faire".

+

Les administrateurs de groupe peuvent également définir des couleurs pour les balises. Les couleurs sont partagées entre les groupes.

+

Le menu "fonctionnalités

+

Ce menu vous permet d'activer et de désactiver les onglets disponibles dans votre groupe. Vous pouvez ainsi activer ou désactiver :

+
    +
  • Discussions
  • +
  • Le calendrier
  • +
  • Fichiers
  • +
  • Membres
  • +
  • Carte
  • +
+

Vous avez également la possibilité d'ajouter un onglet personnalisé à votre groupe, avec une icône et un code HTML personnalisés. Utilisez-le pour inclure du contenu supplémentaire qui doit être partagé par tous les membres du groupe.

+

Le menu "permissions

+

Ce menu vous permet de choisir ce que les membres peuvent faire ou ne pas faire dans votre groupe. C'est assez explicite, il suffit de cocher les permissions que vous souhaitez accorder aux membres réguliers de votre groupe. Par défaut, les membres ont toutes les permissions.

+

Le menu "insights

+

Ce menu vous montre des statistiques intéressantes sur vos groupes ainsi que de jolis graphiques.

+

Inviter des personnes

+

Invitez des personnes à un ou plusieurs groupes en utilisant la fonction d'invitation de chaque groupe. Vous pouvez également ajouter des personnes directement si elles sont déjà inscrites sur votre installation. Ceci est particulièrement utile si les gens ont du mal à confirmer leur adresse email et leur appartenance à un groupe (croyez-moi, cela arrive).

+

Adhésions

+

Sur cette page, vous pouvez voir et exporter la liste des membres de votre groupe. Vous pouvez également vérifier si tout le monde a accepté une invitation à rejoindre un groupe.

+

REMARQUE : le champ "Dernière activité" indique la dernière fois que quelqu'un a écrit quelque chose et non la dernière fois que quelqu'un s'est connecté au système. Cela peut induire en erreur.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/groups_types.html b/fr/groups_types.html new file mode 100644 index 0000000..2ef1fac --- /dev/null +++ b/fr/groups_types.html @@ -0,0 +1,989 @@ + + + + + + + + + + + + + + + + + + + Les différents types de groupes disponible dans Agorakit - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Les différents types de groupes disponible dans Agorakit

+

En fonction du type de communauté que vous souhaitez créer, vous avez à votre disposition différents types de groupes.

+

Les groupes publics

+

Ces groupes sont ouverts à tout le monde, et leur contenu est public. N'importe qui peut se créer un compte sur l'instance et rejoindre un groupe public. Une petite icône de planète est affichée à côté du nom.

+

Les groupes privés

+

Ces groupes sont sur invitation uniquement et leur contenu n'est pas public. Seul est visible la pag de présentation du groupe (comprenant la photo du groupe et le texte de description). Si le groupe autorise les utilisateurs à candidater, un onglet permet de le faire. Une petite icône de cadenas est affichée à côté du nom.

+

Les groupes secrets

+

Ces groupes sont totalement invisibles pour celles et ceux qui n'en connaissent pas l'existence. Si vous n'êtes pas invité à un tel groupe vous n'y avez pas accès. Une petite icône d'oeuil barré est affichée à côté du nom.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/index.html b/fr/index.html new file mode 100644 index 0000000..48bc49a --- /dev/null +++ b/fr/index.html @@ -0,0 +1,1085 @@ + + + + + + + + + + + + + + + + + + + + + What is Agorakit? - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Agorakit : la collaboration collective simplifiée

+

Agorakit est un collecticiel open source, web based pour collectifs. Il permet aux groupes de communiquer, d'organiser des événements et de stocker leurs fichiers. Il permet à tous les membres de votre groupe collaboratif de se tenir au courant grâce à un forum de discussion, un agenda pour les événements, un gestionnaire de fichiers et un notificateur d'emails.

+

La plupart du temps, Agorakit n'a pas besoin d'administrateur, ce qui rend le processus aussi horizontal que possible.

+

Essayer Agorakit

+

Si vous voulez essayer Agorakit sans l'installer, allez sur https://app.agorakit.org, créez un compte et créez ou rejoignez des groupes.

+

Comment installer Agorakit ?

+

En tant qu'administrateur de serveur, vous pourriez vouloir installer et plus tard mettre à jour Agorakit. Agorakit est écrit en PHP en utilisant le framework Laravel.

+

Guide de l'utilisateur

+

Si vous êtes membre d'un groupe et que vous avez besoin d'aide, consultez le user guide. +Si vous êtes administrateur d'un groupe sur une nouvelle installation d'Agorakit et que vous avez besoin d'aide, consultez le group owner quickstart.

+

Contribuer

+

Si vous cherchez des moyens de contribuer (super !), voyez le guide de contribution.

+

NOTE : Cette documentation est écrite en markdown et construite en utilisant Mkdocs-material. Votre aide est très appréciée sur tous les fronts, y compris la documentation :-)

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/install.html b/fr/install.html new file mode 100644 index 0000000..7ffe61a --- /dev/null +++ b/fr/install.html @@ -0,0 +1,1348 @@ + + + + + + + + + + + + + + + + + + + + + + + Installation - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Installation

+

NOTE : Essayer Agorakit sans l'installer + Si vous souhaitez simplement essayer Agorakit, vous pouvez le faire sans avoir à l'installer. Il suffit de créer un compte sur https://app.agorakit.org, une instance d'Agorakit pour les citoyens-activistes et à des fins d'évaluation.

+
Vous pouvez également contacter le développeur si vous êtes intéressé par l'hébergement géré d'une instance privée d'Agorakit. Contactez info [at] agorakit.org pour plus de détails.
+
+Continuez à lire si vous souhaitez installer une instance d'Agorakit sur votre propre serveur.
+
+

Exigences

+

Vous avez besoin d'un bon fournisseur d'hébergement web qui fournit les éléments suivants :

+
    +
  • php >= 8 avec les extensions habituelles
  • +
  • Mysql ou MariaDb ou SQlite
  • +
  • Composer
  • +
  • Git
  • +
  • la possibilité d'exécuter des tâches cron
  • +
  • accès ssh
  • +
+

NOTE : Toutes ces fonctionnalités réunies sont difficiles à trouver, c'est pourquoi les gens sont obligés d'utiliser un VPS et de tout configurer eux-mêmes. C'est une proposition plus risquée si vous ne savez pas comment cela fonctionne. Nous avons eu beaucoup de succès avec l'hébergement partagé [Alwaysdata] (https://www.alwaysdata.com). Ils hébergent d'ailleurs à un tarif réduit l'instance gratuite d'Agorakit.

+

Installer

+

Actuellement, vous devez savoir comment installer une application Laravel en utilisant la ligne de commande. +Ceci est parfaitement standard et documenté ici : https://laravel.com/docs/master/installation.

+

Cloner le dépôt

+
git clone https://github.com/agorakit/agorakit
+
+

Cela créera un répertoire agorakit dans le chemin courant.

+

Créer le fichier .env

+

Tous les paramètres sont stockés dans un fichier .env. Ce fichier n'est pas fourni dans le dépôt Git, parce qu'il est spécifique à votre installation, et parce que vous ne voulez pas que votre configuration soit écrasée lors d'une mise à jour :-)

+

Créez et éditez le fichier de configuration à partir du fichier d'exemple fourni :

+
cp .env.example .env
+nano .env
+
+

Nano est un simple éditeur de texte disponible sur la plupart des serveurs. N'hésitez pas à utiliser autre chose pour éditer votre fichier .env.

+

Configurer les informations d'identification de la base de données

+

NOTE : Vous devez au moins définir les identifiants de votre base de données et le nom de votre site. Vérifiez que votre base de données existe et qu'elle est accessible avec ces identifiants.

+
APP_ENV=local // local ou production
+APP_DEBUG=true // affiche ou non la barre de débogage et les erreurs étendues
+APP_KEY=SomeRandomString // sera généré automatiquement
+APP_NAME='Agorakit' // nom de votre application
+APP_URL=http://locahost // url de base
+APP_LOG=daily // rotation du journal
+APP_DEFAULT_LOCALE=en // locale par défaut si elle n'est pas détectée par le navigateur de l'utilisateur
+
+DB_HOST=localhost // hôte de votre serveur mysql
+DB_DATABASE=agorakit // nom de votre base de données SQL
+DB_USERNAME=root // login de mysql
+DB_PASSWORD= // mot de passe de mysql
+
+CACHE_DRIVER=file // driver à utiliser pour la mise en cache
+SESSION_DRIVER=file // pilote à utiliser pour stocker les sessions
+QUEUE_DRIVER=sync // pilote à utiliser pour les files d'attente
+
+

Configurer l'envoi d'emails

+

Vous pouvez maintenant configurer votre serveur de messagerie. Pour le pilote de messagerie, vous pouvez utiliser mail pour utiliser la fonction de messagerie intégrée de php ou smtp pour utiliser n'importe quel serveur smtp. Choisissez le bon port (sur la plupart des serveurs, il s'agit de 25), l'hôte et le nom d'utilisateur / mot de passe.

+
MAIL_DRIVER=mail // pilote à utiliser pour envoyer des emails. Utilisez mail pour utiliser la fonction mail intégrée de php
+MAIL_HOST=mailtrap.io // nom d'hôte si vous utilisez smtp pour envoyer des mails
+MAIL_PORT=2525 // port si vous utilisez smtp pour envoyer des mails
+MAIL_USERNAME=null // login si vous utilisez smtp pour envoyer des mails
+MAIL_PASSWORD=null // mot de passe si vous utilisez smtp pour envoyer des mails
+MAIL_ENCRYPTION=null // cryptage si vous utilisez smtp pour envoyer des mails
+
+MAIL_FROM=admin@localhost // adresse email utilisée pour l'envoi d'emails d'administration
+MAIL_FROM_NAME=Agorakit // nom de l'expéditeur des emails d'administration
+MAIL_NOREPLY=noreply@localhost // pas d'adresse de réponse pour les messages de service
+
+MAPBOX_TOKEN=null // Créer un compte Mapbox et générer un jeton pour permettre la géolocalisation et l'affichage des cartes.
+
+

ASTUCE : Vous devez disposer d'un serveur de courrier électronique opérationnel pour pouvoir vérifier tout compte utilisateur enregistré. Si vous ne pouvez pas vérifier votre compte utilisateur, vous pouvez toujours mettre la colonne verified à 1 dans la table users.

+

Installer les paquets

+

Téléchargez tous les paquets nécessaires :

+
composer install
+
+

Générer une clé

+
php artisan key:generate
+
+

Cette étape est très importante car la clé est utilisée pour générer différents tokens et sessions.

+

Créer les tables dans la base de données

+

Migrer (créer toutes les tables dans) la base de données :

+
php artisan migrate
+
+

Stockage des fichiers de liens

+

Lier le dossier public de stockage au dossier public visible par l'utilisateur :

+
php artisan storage:link
+
+

Créer un contenu factice

+

(Facultatif) Créer un exemple de contenu dans la base de données :

+
php artisan db:seed
+
+

! !! avertissement + Ne faites pas cette dernière étape pour une installation en production car elle créera un utilisateur admin avec un mot de passe par défaut et des groupes et contenus factices.

+

Configurez votre serveur web

+

Vous pouvez maintenant configurer votre serveur web pour qu'il serve le répertoire /public. Ceci est très important, car vous ne voulez pas exposer le reste des répertoires (par exemple, vous ne voulez PAS exposer votre fichier .env !).

+

Configurer un job cron

+

Une tâche cron est une tâche que votre serveur exécute à des intervalles spécifiques pour exécuter des choses en arrière-plan.

+

Agorakit a besoin d'effectuer périodiquement certaines tâches, comme l'envoi de résumés par email, le nettoyage de la base de données, la suppression d'anciennes versions du contenu, la suppression d'anciens fichiers, etc...

+

Le script php artisan schedule:run doit être exécuté au moins toutes les 5 minutes en utilisant une tâche cron.

+

Suivez la documentation de Laravel cron ici : https://laravel.com/docs/master/scheduling

+

NOTE : Sans job cron, votre application n'enverra PAS de résumés, ne nettoiera pas la base de données, ne rappellera pas aux utilisateurs les événements à venir, etc. Les jobs cron sont nécessaires pour une exploitation correcte.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/login.html b/fr/login.html new file mode 100644 index 0000000..e159bc1 --- /dev/null +++ b/fr/login.html @@ -0,0 +1,978 @@ + + + + + + + + + + + + + + + + + + + Accéder à Agorakit - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Accéder à Agorakit

+

Vous devez d'abord déterminer si vous utilisez l'agora partagée sur https://app.agorakit.org ou si vous utilisez l'agora de votre organisme. Dans le premier cas, allez simplement sur https://app.agorakit.org, dans le second cas, vous aurez reçu un lien pour vous connecter.

+

Se créer un compte

+

La création de compte est très facile, vous devez simplement cliquer sur "S'enregistrer", mentionner votre nom et votre adresse mail. Vous recevrez directement un lien pour vous connecter dans votre boite mail. Vérifiez le dossier spam si vous navez rien reçu après quelques minutes.

+

Se connecter

+

Cliquer sur le bouton connexion, entrez votre nom d'utilisateur.trice ou votre mail et votre mot de passe. Si vous avez oublié votre mot de passe, laissez la case 'mot de passe' vide, le système vous enverra un lien de connexion par mail.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/sign_up.html b/fr/sign_up.html new file mode 100644 index 0000000..28f7ebf --- /dev/null +++ b/fr/sign_up.html @@ -0,0 +1,1044 @@ + + + + + + + + + + + + + + + + + + + + + + + Signing up - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Signing up

+ +

Pour utiliser Agorakit, il suffit de se connecter au serveur Agorakit que vous utilisez.

+

Il peut s'agir de l'instance partagée sur https://app.agorakit.org (instance "name your price" disponible pour vos tests et pour les collectifs), ou d'un serveur que vous avez installé ou que quelqu'un gère pour vous.

+

Enregistrer un nouvel utilisateur

+

Sur la plupart des serveurs, vous pouvez librement créer un nouveau compte utilisateur. Si vous ne pouvez pas créer de compte sur un serveur particulier, cela signifie que l'enregistrement a été désactivé. Dans ce cas, vous devez recevoir une invitation de l'administrateur du serveur pour rejoindre le serveur.

+

Le cas particulier du premier compte d'utilisateur

+

Si vous créez un compte utilisateur sur un nouveau serveur (sans utilisateur existant), vous serez l'administrateur du serveur (super utilisateur) sur ce serveur.

+

NOTE : L'envoi d'email doit fonctionner pour que votre compte puisse être validé.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/tags.html b/fr/tags.html new file mode 100644 index 0000000..8ac10f1 --- /dev/null +++ b/fr/tags.html @@ -0,0 +1,987 @@ + + + + + + + + + + + + + + + + + + + Les tags, qu'est-ce que c'est et à quoi ça sert? - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Les tags, qu'est-ce que c'est et à quoi ça sert?

+

Le classement du contenu est une science. On l'appelle la taxonomie. C'est aussi parfois l'enfer, surtout quand on travaille à plusieurs sur des fichiers.

+
+

Où se trouve le dernier PV? +Dans /premier-trimestre/réunions/2021 +ou dans /2021/premier-trimestre/pv ? +ou encore dans admin/pv/2021 ?

+
+

Ce type de question arrive fréquemment quand un groupe de personne classe différents documents dans une structure hiérarchique de dossiers. Chacun ayant sa logique de classement, les documents sont vites éparpillés et il devient très difficile de les retrouver.

+

La solution proposée par Agorakit est d'utiliser les tags (ou mots clés) pour classer le contenu. Ceux-ci consistent en de simples mots clés que l'on peut appliquer au contenu. L'avantage est que l'on peut inventer un vocabulaire simple, éventuellement limité à quelques mots clés, et sans hiérarchie qui dépendrait trop de la logique de classement de chacun.

+
+

Info

+

Ainsi, un PV daté de 2021 sera simplement taggé PVet 2021 et sera très facile à retrouver ultérieurement.

+
+

Les tags peuvent être appliqués à des personnes, à des groupes, des discussions, des événements et des fichiers.

+

Le fait de cliquer sur un tag vous permet de voir tous les autres éléments taggés de la même façon.

+
+

Info

+

Celles et ceux qui le souhaitent peuvent néanmoins classer les fichiers par dossier. Une combinaison des deux systèmes est également envisageable. A vous de voir ce qui marche le mieux pour votre groupe.

+
+

Limiter les tags utilisables

+

Mais les tags ne règlent pas tout. Si votre groupe est de taille importante ou que vous avez beaucoup de contenu, il est possible qu'un moment vous vous retrouviez avec trop de tags différents et non normalisés.

+

Dans ce cas, mieux vaut confier réfléchir un instant aux tags réellement nécessaire et à limiter les tags disponibles dans votre groupe. Vous pouvez très facilement le faire en allant dans les réglages de votre groupe (Gérer > Tags).

+

Idem pour les utilisateurs et les groupes, afin d'uniformiser les profils des personnes et surtout de permettre à chacun de retrouer quelqu'un en fonction de mots clés communs à tous, vous pouvez limiter les tags utilisables dans les profils utilisateurs dans le menu Admin > Settings.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/upgrade.html b/fr/upgrade.html new file mode 100644 index 0000000..25f0cc3 --- /dev/null +++ b/fr/upgrade.html @@ -0,0 +1,1072 @@ + + + + + + + + + + + + + + + + + + + + + + + Upgrading - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

Mise à jour d'Agorakit

+

Il est important de maintenir une installation d'Agorakit à jour. Le processus est sûr

+

Nous essayons de garder la branche master toujours dans un bon état de fonctionnement (c'est ce qu'on appelle un modèle de "rolling release").

+

Cela signifie que les tests sont réussis et que vous obtenez les dernières fonctionnalités directement à partir de la branche master.

+

ATTENTION : Faites une sauvegarde de votre base de données SQL au cas où quelque chose tournerait mal. Faites également une sauvegarde de tous vos fichiers. Faites même deux sauvegardes et stockez-les sur un serveur séparé.

+

INFO : Vous pouvez choisir entre une procédure de mise à jour automatisée à partir de la ligne de commande, ou une procédure de mise à jour manuelle étape par étape.

+

Option 1 : Utilisation du script de mise à jour

+

Il existe un script d'aide qui effectue la mise à jour pour vous :

+
./update
+
+

! !! avertissement + Attention, le script migrera votre base de données sans vous demander confirmation. Faites toujours une sauvegarde de la base de données au cas où quelque chose se passerait mal.

+

Option 2 : Procéder à la mise à jour manuellement

+

Vous pouvez à tout moment procéder à la mise à jour de votre installation :

+
php artisan down
+git pull
+composer install
+php artisan migrate
+php artisan up
+
+

Si quelque chose ne va pas

+

Restaurez la sauvegarde de votre base de données et faites un git checkout d'une version précédente (fonctionnelle). Puis réexécutez composer install.

+

Contactez-nous si une mise à jour échoue (cela n'est jamais arrivé, donc ce genre d'échec est une information très intéressante pour le projet).

+

Instructions spécifiques à la version

+

Mise à jour vers la version 1.5

+

Après la mise à jour normale, il se peut que vous obteniez une erreur mentionnant la duplication de la clé du nom d'utilisateur dans la table des utilisateurs.

+

Exécutez php artisan agorakit:enforceuniqueusernames pour corriger le problème. +Puis réexécutez le script de mise à jour.

+

Ceci n'arrive que sur les grosses installations et peut être exécuté plusieurs fois sans problème. C'est une solution à l'épreuve du temps pour ce problème.

+

! !! note + La plupart des mises à jour ponctuelles comme celle mentionnée ci-dessus sont maintenant effectuées dans le cadre de migrations afin de réduire la quantité de documentation que vous devez lire pour mettre à jour correctement votre installation. Asseyez-vous, détendez-vous et appréciez l'automatisation au travail :-)

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/usage.html b/fr/usage.html new file mode 100644 index 0000000..dec1123 --- /dev/null +++ b/fr/usage.html @@ -0,0 +1,1111 @@ + + + + + + + + + + + + + + + + + + + + + + + Using Agorakit - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Utilisation d'Agorakit

+

Démarrer les discussions

+

Chaque groupe permet de créer des discussions. Dans les discussions et les commentaires, vous pouvez utiliser une syntaxe spéciale pour faire référence à des fichiers et des discussions existants, et mentionner des utilisateurs.

+
    +
  • Il suffit de taper @ pour mentionner quelqu'un (l'autocomplétion apparaît).
  • +
+

Vous pouvez également joindre directement un fichier à une discussion. Utilisez le bouton "Parcourir..." situé sous le formulaire de discussion pour télécharger un fichier depuis votre ordinateur, le joindre au groupe et le mentionner dans la discussion en une seule fois.

+

Programmer des événements

+

Chaque groupe dispose d'un calendrier dans lequel vous pouvez ajouter des actions/événements. Il vous suffit de définir une date et une heure de début, ainsi qu'une durée facultative. Si aucune durée n'est définie, elle est supposée être d'une heure.

+

Télécharger des fichiers et partager des liens

+

Vous pouvez ajouter des fichiers aux groupes directement dans l'onglet des fichiers. Il suffit de télécharger un ou plusieurs fichiers et d'ajouter quelques balises pour les organiser. Comme expliqué ci-dessus, vous pouvez également joindre directement des fichiers aux commentaires et aux discussions.

+

Catégoriser le contenu à l'aide de balises

+

Les tags (ou étiquettes) sont très importants pour organiser votre contenu. Vous pouvez étiqueter n'importe quoi dans Agorakit (fichiers, utilisateurs, discussions, groupes, actions). Les administrateurs de groupes peuvent choisir d'utiliser des tags libres (n'importe qui peut choisir n'importe quel tag) ou restreindre les tags que vous pouvez utiliser dans chaque groupe (plus comme les labels github par exemple).

+

Une fois que le contenu est étiqueté, il peut être trouvé comme une simple page d'aperçu, montrant tous les tags et montrant tous les contenus attachés à un tag particulier. C'est très pratique pour avoir une vue d'ensemble de vos groupes.

+

Dernière étape : le profit !

+

(ou dans certains cas, révolution !)

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/fr/users_types.html b/fr/users_types.html new file mode 100644 index 0000000..6bedccd --- /dev/null +++ b/fr/users_types.html @@ -0,0 +1,1056 @@ + + + + + + + + + + + + + + + + + + + Types d'utilisateurs - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Aller au contenu + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Types d'utilisateurs

+

Agorakit dispose de différents types d'utilisateurs. Les voici par ordre de permissions, des plus étendues aux plus restreintes :

+

Administrateur.trice d'instance

+

Il s'agit d'une personne qui dispose de tous les droits d'accès à une instance (installation) d'Agorakit. Cette personne peut tout faire : +- accéder à tous les groupes y compris les groupes secrets +- modifier les réglages de l'installation +- modifier et effacer n'importe quel contenu

+

Administrateur.trice de groupe

+

Toute personne créant un groupe devient automatiquement administrateur de ce groupe. Cela permet de : +- modifier les réglages du groupe y compris les permissions des membres +- accéder à la liste complète des participants y compris leur adresse mail +- promouvoir n'importe quel membre au statut d'admin +- changer le statut de n'importe quel membre y compris le sortir du groupe +- modifier et effacer n'importe quel contenu du groupe

+

Membre d'un groupe

+

Toute personne membre d'un groupe dispose au minimum de la permission de voir l'ensemble du contenu du groupe. Elle peut en plus, en fonction des permissions définies pour le groupe en question : +- créer des discussions +- créer des événements à l'agenda +- ajouter des fichiers +- inviter de nouveaux participants

+

Membre invité

+

Dans le cas d'un groupe fermé : quand un utilisateur a été invité par mail à rejoindre un groupe, il reçoit le status d'invité. Dès qu'il confirme la demande, il devient membre effectif du groupe.

+

Candidat d'un groupe

+

Quand une personne demande à rejoindre un groupe fermé, elle a le statut de candidat. Un des administrateurs du groupe doit accepter ou refuser sa candidature.

+

Désenregistré / supprimé

+

Ce statut est attribué aux personnes qui ont supprimé leur compte de l'instance Agorakit.

+

A refusé

+

Ce statut est attribué aux personnes qui ont refusé une invitation à rejoindre le groupe. Il est fortement conseillé de ne pas les recontacter à propos du groupe, selon leur souhait, sauf bien entendu si il s'agit d'une fausse manoeuvre de leur part :-)

+

Blacklisté

+

Ce statut est attribué à une personne qui ne peut plus rejoindre le groupe.

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/group.html b/group.html new file mode 100644 index 0000000..e890327 --- /dev/null +++ b/group.html @@ -0,0 +1,1228 @@ + + + + + + + + + + + + + + + + + + + + + + + Creating & managing a group - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Create and manage your groups

+

Create groups

+

Create one or more groups. A welcome and a test group are often useful.

+

You can choose the type of group to create

+
    +
  • An open group has public content and is open to memberships
  • +
  • A private group has private content and membership is invite only (admin need to accept new members)
  • +
  • A secret group is not shown anywhere except to existing members. Perfect for your next plot :-)
  • +
+
+

Note

+

Future releases of Agorakit might include more granular control of group types and membership access. Your input is valuable to further enhance this part.

+
+

Group settings

+

If you are admin of a group, you will have an "admin" tab on the group(s) you manage. There you can manage a lot of things in yout group.

+

The "configuration" menu

+

This tab lets you add a description to your group, set the group tags, define a location (address) and set the group type (see above).

+

The "tags" menu

+

This menu allows you to choose which tagging strategy you want in your group:

+
    +
  • Free tagging : anyone can tag content with any label
  • +
  • Controlled tagging : you decide which tags are allowed in your group.
  • +
+
+

Note

+
Altough free tagging looks nice, it is often a good idea to settle on  a fixed set of tags together and then stick to it in your group. "Less is more" and "everyone has a different way to organize content, so let's stick to one way of doing it".
+
+
+

Group admins may also define tag colors. The colors are shared among groups.

+

The "features" menu

+

This menu allows you to enable and disable the tabs available in your group. This way you can enable or disable :

+
    +
  • Discussions
  • +
  • Calendar
  • +
  • Files
  • +
  • Members
  • +
  • Map
  • +
+

You have also the opportunity to add one custom tab to your group with a custom icon and custom HTML. Use it to include additional content that must be shared amongst all group members.

+

The "permissions" menu

+

This menu allows you to choose what members are able to do or not in your group. This is quite self explanatory, just check the permissions you want to allow for regular members in your group. By default members have all permissions.

+

The "insights" menu

+

This one shows you some interesting stats about your groups and some nice graphs as well.

+

Invite people

+

Invite people to one or more groups using the invite feature of each group. You can also add people directly if the already registered on your install. This is particularly useful if people have a hard time to confirm their email address and membership (trust me it happens).

+

Memberships

+

On this page, you can view and export the list of members of your group. You can also check if everyone has accepted an invitation to join a group.

+
+

Note

+

The "Last activity" field shows the last time someone wrote something not the last time someone connected to the system. It might be misleading.

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..1d8157a --- /dev/null +++ b/index.html @@ -0,0 +1,1086 @@ + + + + + + + + + + + + + + + + + + + + + Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Agorakit : collective's collaboration simplified

+

Agorakit is an open source, web based groupware for collectives. It allows groups to communicate, organize events and store their files. It keeps everyone in your collaborative group updated with a discussion forum, agenda for events, file manager and email notifier.

+

And most of the time Agorakit doesn't need an admin, keeping the process as horizontal as possible.

+

Trying Agorakit

+

If you want to try Agorakit without installing it, go to https://app.agorakit.org, create an account there and create or join some groups.

+

How to install Agorakit?

+

As a server admin , you might want to install and later upgrade Agorakit. Agorakit is written in PHP using the Laravel framework.

+

User guide

+

If you are group member looking for help, check the user guide. +If you are a group administrator on an new installation of Agorakit looking for help, check the group owner quickstart.

+

Contributing

+

If you are looking for ways to contribute (great!), check the contribution guide.

+
+

Note

+

This documentation is written in markdown and built using Mkdocs-material. Your help is hugely appreciated on any front, including documentation :-)

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/install.html b/install.html new file mode 100644 index 0000000..29c298c --- /dev/null +++ b/install.html @@ -0,0 +1,1361 @@ + + + + + + + + + + + + + + + + + + + + + + + Installation - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Installation

+
+

Trying Agorakit without installation

+

+ If you are just looking to give Agorakit a try, you can do that without having to install it. Just create an account on https://app.agorakit.org, an Agorakit instance for citizen-activists and for evaluation purposes.

+

You can also get in touch with the developper if you are interested in managed hosting of a private Agorakit instance. Contact info [at] agorakit.org for more details.

+

Keep reading if you want to install an Agorakit instance on your own server.

+
+

Requirements

+

You need a good web hosting provider that provides the following :

+
    +
  • php >= 8 with the usual extensions
  • +
  • Mysql or MariaDb or SQlite
  • +
  • Composer
  • +
  • Git
  • +
  • the ability to run cron jobs
  • +
  • ssh access
  • +
+
+

Note

+

All those features together are hard to find, so people are obliged to use a VPS and setup everything themselves. This is a riskier proposal if you don't know how it works. We have been very successful with Alwaysdata shared hosting. By the way they host at a reduced fee the free instance of Agorakit.

+
+

Install

+

Currently, you need to know how to install a Laravel application using the command line. +This is perfectly standard and documented here : https://laravel.com/docs/master/installation.

+

Clone the repository

+
git clone https://github.com/agorakit/agorakit
+
+

This will create an agorakit directory in the current path.

+

Create the .env file

+

All settings are stored in a .env file. This file is not provided in the Git repository, because it is specific to your installation, and because you don't want your configuration to be overwritten when doing an upgrade :-)

+

Create and edit the configuration file from the example file provided:

+
cp .env.example .env
+nano .env
+
+

Nano is a simple text editor available on most servers. Feel free to use something else to edit your .env file.

+

Setup your database credentials

+
+

Note

+

You need to set at least your database credentials & site name. Check that your database exists and is reachable with those credentials.

+
+
APP_ENV=local  // local or production
+APP_DEBUG=true // show the debugbar and extended errors or not
+APP_KEY=SomeRandomString // will be auto generated
+APP_NAME='Agorakit' // name of your application
+APP_URL=http://locahost // base url
+APP_LOG=daily // log rotation
+APP_DEFAULT_LOCALE=en // default locale when not detected from user browser
+
+DB_HOST=localhost // host of your mysql server
+DB_DATABASE=agorakit // db name of your sql DB
+DB_USERNAME=root // login of mysql
+DB_PASSWORD= // password of mysql
+
+CACHE_DRIVER=file // driver to use for caching
+SESSION_DRIVER=file // driver to use for storing sessions
+QUEUE_DRIVER=sync // driver to use for queues
+
+

Setup email sending

+

You can now configure your mail server. For the mail driver you can use mail to use php built in mail function or smtp to use any smtp server. Choose the right port (on most servers this is 25), host and username / password.

+
MAIL_DRIVER=mail // driver to use for sending emails. Use mail to use php built-in mail function
+MAIL_HOST=mailtrap.io // hostname if you use smtp for sending mails
+MAIL_PORT=2525 // port if you use smtp for sending mails
+MAIL_USERNAME=null // login if you use smtp for sending mails
+MAIL_PASSWORD=null // password if you use smtp for sending mails
+MAIL_ENCRYPTION=null // encryption if you use smtp for sending mails
+
+MAIL_FROM=admin@localhost // from email adress used when sending admin emails
+MAIL_FROM_NAME=Agorakit // name of sender of admin emails
+MAIL_NOREPLY=noreply@localhost // no reply adress for service messages
+
+MAPBOX_TOKEN=null // Create a Mapbox account and generate a token to enable geolocalisation and display maps
+
+
+

Tip

+

You need a working email server to be able to verify any registered user account. If you cannot verify your user account, you can always set the column verified to 1 inside the users table.

+
+

Install the packages

+

Download all the packages needed:

+
composer install
+
+

Generate a key

+
php artisan key:generate
+
+

This is a very important step since the key is used to generate various tokens and sessions.

+

Create the tables in the DB

+

Migrate (create all tables in) the database:

+
php artisan migrate
+
+ +

Link the storage public folder to the user visible public folder:

+
php artisan storage:link
+
+

Create dummy content

+

(Optional) Create sample content the database:

+
php artisan db:seed
+
+
+

Warning

+

Don't do this last step for a production install since it will create an admin user with default password and dummy groups and content.

+
+

Setup your web server

+

You can now setup your web server to serve the /public directory. This is very important, since you don't want to expose the rest of the directories (for example you DON'T want to expose your .env file!)

+

Setup a cron job

+

A cron job is a task your server runs at specific intervals to run stuff in the background.

+

Agorakit needs to periodically do some tasks, like sending email summaries, celaning the DB, remove old versions of content, delete old files, etc...

+

The script php artisan schedule:run should be run at least every 5 minutes using a cron job.

+

Follow Laravel cron documentation here : https://laravel.com/docs/master/scheduling

+
+

Note

+

Without cron job your application will NOT send summaries, clean the DB, remind users of upcoming events, etc. Cron jobs are required for correct opperation.

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/search/search_index.js b/search/search_index.js new file mode 100644 index 0000000..c2a1f9b --- /dev/null +++ b/search/search_index.js @@ -0,0 +1 @@ +var __index = {"config":{"lang":["en","fr"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"fr/index.html","title":"Agorakit : la collaboration collective simplifi\u00e9e","text":"

Agorakit est un collecticiel open source, web based pour collectifs. Il permet aux groupes de communiquer, d'organiser des \u00e9v\u00e9nements et de stocker leurs fichiers. Il permet \u00e0 tous les membres de votre groupe collaboratif de se tenir au courant gr\u00e2ce \u00e0 un forum de discussion, un agenda pour les \u00e9v\u00e9nements, un gestionnaire de fichiers et un notificateur d'emails.

La plupart du temps, Agorakit n'a pas besoin d'administrateur, ce qui rend le processus aussi horizontal que possible.

"},{"location":"fr/index.html#essayer-agorakit","title":"Essayer Agorakit","text":"

Si vous voulez essayer Agorakit sans l'installer, allez sur https://app.agorakit.org, cr\u00e9ez un compte et cr\u00e9ez ou rejoignez des groupes.

"},{"location":"fr/index.html#comment-installer-agorakit","title":"Comment installer Agorakit ?","text":"

En tant qu'administrateur de serveur, vous pourriez vouloir installer et plus tard mettre \u00e0 jour Agorakit. Agorakit est \u00e9crit en PHP en utilisant le framework Laravel.

"},{"location":"fr/index.html#guide-de-lutilisateur","title":"Guide de l'utilisateur","text":"

Si vous \u00eates membre d'un groupe et que vous avez besoin d'aide, consultez le user guide. Si vous \u00eates administrateur d'un groupe sur une nouvelle installation d'Agorakit et que vous avez besoin d'aide, consultez le group owner quickstart.

"},{"location":"fr/index.html#contribuer","title":"Contribuer","text":"

Si vous cherchez des moyens de contribuer (super !), voyez le guide de contribution.

NOTE : Cette documentation est \u00e9crite en markdown et construite en utilisant Mkdocs-material. Votre aide est tr\u00e8s appr\u00e9ci\u00e9e sur tous les fronts, y compris la documentation :-)

"},{"location":"fr/advanced_config.html","title":"Advanced configurations","text":""},{"location":"fr/advanced_config.html#configurer-les-courriels-entrants","title":"Configurer les courriels entrants","text":"

Cette \u00e9tape suppl\u00e9mentaire vous permet d'avoir une bo\u00eete aux lettres pour chaque groupe afin que les membres puissent envoyer des messages par courriel pour cr\u00e9er des discussions et r\u00e9pondre aux courriels des discussions pour cr\u00e9er de nouveaux commentaires.

! !! note Le support des emails entrants est exp\u00e9rimental mais utilis\u00e9 sur plusieurs instances. Il est possible que vous rencontriez des bogues, veuillez les signaler si cela se produit dans votre installation.

Disons que vous avez install\u00e9 Agorakit sur agora.example.org :

# Param\u00e8tres du serveur de la bo\u00eete aux lettres, \u00e0 utiliser pour les courriels entrants.\n# D\u00e9finissez INBOX_DRIVER \u00e0 null pour d\u00e9sactiver cette fonctionnalit\u00e9\nINBOX_DRIVER=imap\nINBOX_HOST=votremailhost.tld\nINBOX_USERNAME=nom d'utilisateur de la bo\u00eete aux lettres\nINBOX_PASSWORD=mot de passe de la bo\u00eete aux lettres\nINBOX_PREFIX=\nINBOX_SUFFIX=@agora.example.org\n
"},{"location":"fr/advanced_config.html#definir-les-prefixes-et-les-suffixes","title":"D\u00e9finir les pr\u00e9fixes et les suffixes","text":"

Vous devez renseigner le pr\u00e9fixe et le suffixe. Il y a deux cas de figure :

Si vous activez les emails entrants, la bo\u00eete aux lettres sera automatiquement v\u00e9rifi\u00e9e et les emails trait\u00e9s seront plac\u00e9s dans un dossier \"processed\" sous INBOX. Les courriels \u00e9chou\u00e9s seront \u00e9galement plac\u00e9s dans un dossier \"failed\" sous INBOX pour inspection.

"},{"location":"fr/advanced_config.html#authentification-externe","title":"Authentification externe","text":"

! !! info L'authentification externe a \u00e9t\u00e9 supprim\u00e9e. Je n'ai que tr\u00e8s peu (voire pas du tout) de personnes qui l'ont demand\u00e9e. Il s'agit d'une fonctionnalit\u00e9 qui porte atteinte \u00e0 la vie priv\u00e9e, c'est pourquoi aucun d\u00e9veloppement n'a \u00e9t\u00e9 fait dans ce sens. N'h\u00e9sitez pas \u00e0 soumettre un PR si vous le souhaitez.

"},{"location":"fr/artisan.html","title":"Commandes artisanales utiles","text":"

Agorakit fournit quelques commandes artisan utiles :

ATTENTION : La plupart de ces commandes sont d\u00e9j\u00e0 utilis\u00e9es par le job cron, elles n'ont donc pas besoin d'\u00eatre appel\u00e9es manuellement. Mais elles peuvent \u00eatre utiles pour le d\u00e9bogage et le d\u00e9veloppement.

"},{"location":"fr/contact.html","title":"How to contact us","text":"

Vous pouvez contacter l'\u00e9quipe d'Agorakit directement sur info [at] agorakit [dot] org.

Vous pouvez \u00e9galement rejoindre le groupe officiel de d\u00e9veloppeurs ici, sur Agorakit bien s\u00fbr : https://app.agorakit.org/groups/39

"},{"location":"fr/contribute.html","title":"Introduction","text":"

Vous souhaitez contribuer \u00e0 agorakit ? Merci d'avance !

"},{"location":"fr/contribute.html#vous-etes-une-personne-de-communication-et-de-soutien","title":"Vous \u00eates une personne de communication et de soutien ?","text":"

Il y a des tonnes de fa\u00e7ons de contribuer, tout est tr\u00e8s appr\u00e9ci\u00e9.

"},{"location":"fr/contribute.html#vous-etes-un-developpeur-maitrisant-laravelphphtmlcssjs","title":"Vous \u00eates un d\u00e9veloppeur ma\u00eetrisant laravel/php/html/css/js ?","text":"

Cr\u00e9ez une branche de la branche principale, travaillez sur votre branche et cr\u00e9ez une demande d'extraction lorsque vous \u00eates pr\u00eat. Voir http://scottchacon.com/2011/08/31/github-flow.html

"},{"location":"fr/contribute.html#soutien-financier","title":"Soutien financier","text":""},{"location":"fr/contribute.html#licence","title":"Licence","text":"

Tout le travail est open source (AGPL) - Votre travail b\u00e9n\u00e9ficiera \u00e0 toute initiative citoyenne int\u00e9ress\u00e9e. Nous avons d\u00e9j\u00e0 des milliers d'utilisateurs qui pourraient b\u00e9n\u00e9ficier de votre aide. Le travail est r\u00e9alis\u00e9 sous licence AGPL. - Cela signifie \u00e9galement que si vous utilisez cette base de code, vous devez contribuer \u00e0 vos modifications.

N'h\u00e9sitez pas \u00e0 envoyer un message \u00e0 info (at) agorakit.org si vous \u00eates int\u00e9ress\u00e9 ou si vous avez des questions.

"},{"location":"fr/development.html","title":"Contribuer \u00e0 Agorakit","text":"

Vous voulez contribuer au projet ? C'est tr\u00e8s bien ! Toute id\u00e9e est la bienvenue.

"},{"location":"fr/development.html#serveur-de-developpement","title":"Serveur de d\u00e9veloppement","text":""},{"location":"fr/development.html#utilisation-de-laravel-sail","title":"Utilisation de Laravel Sail","text":"

Sail est un wrapper docker pour faciliter le d\u00e9veloppement local. C'est un moyen vraiment cool et facile d'avoir un serveur local parfait pour les d\u00e9veloppeurs. Laravel Sail fonctionne d'embl\u00e9e dans ce projet. Lisez la documentation de Sail pour plus d'informations.

C'est ce que j'utilise sur ma station de travail principale (bas\u00e9e sur linux) car c'est tr\u00e8s reproductible.

En gros, sail up va d\u00e9marrer un serveur de d\u00e9veloppement

"},{"location":"fr/development.html#utilisation-de-artisan-serve","title":"Utilisation de artisan serve","text":"

Si vous voulez d\u00e9marrer un serveur local pour le d\u00e9veloppement :

$ php artisan serve\n

L'installation sera disponible pour 127.0.0.1:8000

Il y a beaucoup d'autres options, consultez la documentation et l'\u00e9cosyst\u00e8me de Laravel pour avoir une vue d'ensemble des options pour le d\u00e9veloppement local.

"},{"location":"fr/development.html#creation-de-la-base-de-donnees","title":"Cr\u00e9ation de la base de donn\u00e9es","text":"

Suivez d'abord les instructions d'installation, y compris la cr\u00e9ation d'un \u00e9chantillon de contenu en utilisant :

$ php artisan db:seed\n
"},{"location":"fr/development.html#travailler-sur-le-design-et-les-css","title":"Travailler sur le design et les css","text":"

J'ai supprim\u00e9 toutes les \u00e9tapes de construction, maintenant tout se passe dans un fichier custom.css plat.

Tous les JS et CSS externes sont servis par diff\u00e9rents CDN. A un moment donn\u00e9, les fichiers seront re-servis en local, quand tout sera stabilis\u00e9, et s'il y a de r\u00e9els avantages \u00e0 le faire.

Pas de npm, pas de node, pas de tailwind, pas de purge, pas de minifier, pas de probl\u00e8me :)

"},{"location":"fr/development.html#tester-votre-code","title":"Tester votre code","text":"

Agorakit est test\u00e9 en utilisant le framework de test Laravel.

Pour tester, vous devez avoir une base de donn\u00e9es de test existante. Il suffit de cr\u00e9er une nouvelle base de donn\u00e9es vide, par exemple agorakit_testing et de v\u00e9rifier dans le fichier phpunit.xml que tout correspond.

Avant de commencer le code, vous devriez soit \u00e9crire plus de tests (dans ce cas, vous m\u00e9ritez un cookie). Ou au moins v\u00e9rifier que vous n'avez rien cass\u00e9 en tapant simplement: :

php artisan test\n

...\u00e0 la racine de votre projet.

Aucune erreur ne devrait appara\u00eetre (\u00e0 condition que tout soit correctement configur\u00e9).

Nous utilisons travis ci pour ex\u00e9cuter tous ces tests lors du commit, donc cela sera fait automatiquement pour vous \u00e0 un moment donn\u00e9 :-)

"},{"location":"fr/development.html#ecriture-des-tests","title":"Ecriture des tests","text":"

N'h\u00e9sitez pas \u00e0 \u00e9crire des tests. Nous privil\u00e9gions les t\u00e2ches bien d\u00e9finies qu'un utilisateur final accomplirait r\u00e9ellement, comme l'inscription, la cr\u00e9ation d'un compte, la publication, le t\u00e9l\u00e9chargement, etc... Cela nous a tr\u00e8s bien servi dans le pass\u00e9 pour rep\u00e9rer les erreurs et cela refl\u00e8te vraiment les cas d'utilisation r\u00e9els. Bien que nous soyons ouverts \u00e0 d'autres types de tests...

"},{"location":"fr/documentation.html","title":"Contribuer \u00e0 la documentation","text":"

La documentation est \u00e9crite en markdown et le site web est construit statiquement en utilisant Mkdocs material

NOTE : Nouveaux langages, meilleure formulation, nouvelles sections, plus de visuels, toutes les corrections m\u00eame petites sont les bienvenues !

"},{"location":"fr/documentation.html#comment-contribuer","title":"Comment contribuer ?","text":"

CONSEIL : L'utilisation de [Visual Studio Code] (https://code.visualstudio.com/) pour travailler sur du code et des fichiers markdown est une option raisonnablement simple. Vous disposez en outre d'une interface utilisateur int\u00e9gr\u00e9e pour l'int\u00e9gration de git et de github, ce qui est int\u00e9ressant pour les d\u00e9butants.

"},{"location":"fr/documentation.html#comment-construire-la-documentation","title":"Comment construire la documentation ?","text":"

Installez mkdocs material et quelques plugins.

pip install mkdocs-material\npip install markdown-callouts\npip install mkdocs-static-i18n\n

D\u00e9marrez ensuite le serveur web int\u00e9gr\u00e9 pour pr\u00e9visualiser votre travail sur la documentation.

mkdocs serve\n

La documentation est actuellement servie par des pages github. Le processus de publication est localis\u00e9 ici : https://github.com/agorakit/documentation/actions/workflows/ci.yml

Comment cela fonctionne-t-il ? A chaque fois qu'un commit est fait sur la branche principale ou master, la documentation est construite en utilisant https://github.com/mhausenblas/mkdocs-deploy-gh-pages (c'est une action git qui fait le travail pour nous)

Les fichiers r\u00e9sultants sont plac\u00e9s dans la branche GH du d\u00e9p\u00f4t de documentation qui est ensuite s\u00e9rialis\u00e9e en utilisant la fonctionnalit\u00e9 \"pages\" de github.

C'est un peu difficile \u00e0 configurer mais il semble qu'une fois que c'est fait, \u00e7a fonctionne.

Voir https://squidfunk.github.io/mkdocs-material/getting-started/ pour plus d'informations sur le fonctionnement du constructeur de documentation.

"},{"location":"fr/first_steps.html","title":"Premiers pas apr\u00e8s l'installation","text":"

Si vous venez d'installer Agorakit sur un serveur, prenez le temps de le configurer correctement pour votre cas d'utilisation.

"},{"location":"fr/first_steps.html#texte-dintroduction-sur-la-page-daccueil","title":"Texte d'introduction sur la page d'accueil","text":"

D\u00e9finissez un texte d'introduction sur la page d'accueil pour les nouveaux arrivants : allez sur la page d'administration \u00e0 partir du menu d\u00e9roulant de votre profil d'utilisateur. En utilisant l'\u00e9diteur, vous pouvez ajouter des images externes et tout ce que vous voulez.

"},{"location":"fr/first_steps.html#verifier-tous-les-parametres-dadministration","title":"V\u00e9rifier tous les param\u00e8tres d'administration","text":"

Allez dans le menu d'administration (\u00e0 partir du menu d\u00e9roulant de votre profil d'utilisateur) et v\u00e9rifiez tous les param\u00e8tres qui s'y trouvent. Faites attention aux diff\u00e9rentes permissions et aux types de groupes que vous autorisez sur votre serveur.

"},{"location":"fr/group.html","title":"Cr\u00e9ez et g\u00e9rez vos groupes","text":""},{"location":"fr/group.html#creer-des-groupes","title":"Cr\u00e9er des groupes","text":"

Cr\u00e9ez un ou plusieurs groupes. Un groupe de bienvenue et un groupe de test sont souvent utiles.

Vous pouvez choisir le type de groupe \u00e0 cr\u00e9er

! !! note Les prochaines versions d'Agorakit pourraient inclure un contr\u00f4le plus granulaire des types de groupes et de l'acc\u00e8s aux membres. Votre contribution est pr\u00e9cieuse pour am\u00e9liorer cette partie.

"},{"location":"fr/group.html#parametres-du-groupe","title":"Param\u00e8tres du groupe","text":"

Si vous \u00eates administrateur d'un groupe, vous aurez un onglet \"admin\" sur le(s) groupe(s) que vous g\u00e9rez. Vous pouvez y g\u00e9rer beaucoup de choses dans votre groupe.

"},{"location":"fr/group.html#le-menu-configuration","title":"Le menu \"configuration","text":"

Cet onglet vous permet d'ajouter une description \u00e0 votre groupe, de d\u00e9finir les tags du groupe, de d\u00e9finir un emplacement (adresse) et de d\u00e9finir le type de groupe (voir ci-dessus).

"},{"location":"fr/group.html#le-menu-tags","title":"Le menu \"tags","text":"

Ce menu vous permet de choisir la strat\u00e9gie de marquage que vous souhaitez pour votre groupe :

! !! note Bien que le balisage libre soit agr\u00e9able, il est souvent pr\u00e9f\u00e9rable de se fixer ensemble un ensemble de balises et de s'y tenir dans votre groupe. \"Moins c'est plus\" et \"chacun a une fa\u00e7on diff\u00e9rente d'organiser le contenu, alors tenons-nous en \u00e0 une seule fa\u00e7on de le faire\".

Les administrateurs de groupe peuvent \u00e9galement d\u00e9finir des couleurs pour les balises. Les couleurs sont partag\u00e9es entre les groupes.

"},{"location":"fr/group.html#le-menu-fonctionnalites","title":"Le menu \"fonctionnalit\u00e9s","text":"

Ce menu vous permet d'activer et de d\u00e9sactiver les onglets disponibles dans votre groupe. Vous pouvez ainsi activer ou d\u00e9sactiver :

Vous avez \u00e9galement la possibilit\u00e9 d'ajouter un onglet personnalis\u00e9 \u00e0 votre groupe, avec une ic\u00f4ne et un code HTML personnalis\u00e9s. Utilisez-le pour inclure du contenu suppl\u00e9mentaire qui doit \u00eatre partag\u00e9 par tous les membres du groupe.

"},{"location":"fr/group.html#le-menu-permissions","title":"Le menu \"permissions","text":"

Ce menu vous permet de choisir ce que les membres peuvent faire ou ne pas faire dans votre groupe. C'est assez explicite, il suffit de cocher les permissions que vous souhaitez accorder aux membres r\u00e9guliers de votre groupe. Par d\u00e9faut, les membres ont toutes les permissions.

"},{"location":"fr/group.html#le-menu-insights","title":"Le menu \"insights","text":"

Ce menu vous montre des statistiques int\u00e9ressantes sur vos groupes ainsi que de jolis graphiques.

"},{"location":"fr/group.html#inviter-des-personnes","title":"Inviter des personnes","text":"

Invitez des personnes \u00e0 un ou plusieurs groupes en utilisant la fonction d'invitation de chaque groupe. Vous pouvez \u00e9galement ajouter des personnes directement si elles sont d\u00e9j\u00e0 inscrites sur votre installation. Ceci est particuli\u00e8rement utile si les gens ont du mal \u00e0 confirmer leur adresse email et leur appartenance \u00e0 un groupe (croyez-moi, cela arrive).

"},{"location":"fr/group.html#adhesions","title":"Adh\u00e9sions","text":"

Sur cette page, vous pouvez voir et exporter la liste des membres de votre groupe. Vous pouvez \u00e9galement v\u00e9rifier si tout le monde a accept\u00e9 une invitation \u00e0 rejoindre un groupe.

REMARQUE : le champ \"Derni\u00e8re activit\u00e9\" indique la derni\u00e8re fois que quelqu'un a \u00e9crit quelque chose et non la derni\u00e8re fois que quelqu'un s'est connect\u00e9 au syst\u00e8me. Cela peut induire en erreur.

"},{"location":"fr/install.html","title":"Installation","text":"

NOTE : Essayer Agorakit sans l'installer Si vous souhaitez simplement essayer Agorakit, vous pouvez le faire sans avoir \u00e0 l'installer. Il suffit de cr\u00e9er un compte sur https://app.agorakit.org, une instance d'Agorakit pour les citoyens-activistes et \u00e0 des fins d'\u00e9valuation.

Vous pouvez \u00e9galement contacter le d\u00e9veloppeur si vous \u00eates int\u00e9ress\u00e9 par l'h\u00e9bergement g\u00e9r\u00e9 d'une instance priv\u00e9e d'Agorakit. Contactez info [at] agorakit.org pour plus de d\u00e9tails.\n\nContinuez \u00e0 lire si vous souhaitez installer une instance d'Agorakit sur votre propre serveur.\n
"},{"location":"fr/install.html#exigences","title":"Exigences","text":"

Vous avez besoin d'un bon fournisseur d'h\u00e9bergement web qui fournit les \u00e9l\u00e9ments suivants :

NOTE : Toutes ces fonctionnalit\u00e9s r\u00e9unies sont difficiles \u00e0 trouver, c'est pourquoi les gens sont oblig\u00e9s d'utiliser un VPS et de tout configurer eux-m\u00eames. C'est une proposition plus risqu\u00e9e si vous ne savez pas comment cela fonctionne. Nous avons eu beaucoup de succ\u00e8s avec l'h\u00e9bergement partag\u00e9 [Alwaysdata] (https://www.alwaysdata.com). Ils h\u00e9bergent d'ailleurs \u00e0 un tarif r\u00e9duit l'instance gratuite d'Agorakit.

"},{"location":"fr/install.html#installer","title":"Installer","text":"

Actuellement, vous devez savoir comment installer une application Laravel en utilisant la ligne de commande. Ceci est parfaitement standard et document\u00e9 ici : https://laravel.com/docs/master/installation.

"},{"location":"fr/install.html#cloner-le-depot","title":"Cloner le d\u00e9p\u00f4t","text":"
git clone https://github.com/agorakit/agorakit\n

Cela cr\u00e9era un r\u00e9pertoire agorakit dans le chemin courant.

"},{"location":"fr/install.html#creer-le-fichier-env","title":"Cr\u00e9er le fichier .env","text":"

Tous les param\u00e8tres sont stock\u00e9s dans un fichier .env. Ce fichier n'est pas fourni dans le d\u00e9p\u00f4t Git, parce qu'il est sp\u00e9cifique \u00e0 votre installation, et parce que vous ne voulez pas que votre configuration soit \u00e9cras\u00e9e lors d'une mise \u00e0 jour :-)

Cr\u00e9ez et \u00e9ditez le fichier de configuration \u00e0 partir du fichier d'exemple fourni :

cp .env.example .env\nnano .env\n

Nano est un simple \u00e9diteur de texte disponible sur la plupart des serveurs. N'h\u00e9sitez pas \u00e0 utiliser autre chose pour \u00e9diter votre fichier .env.

"},{"location":"fr/install.html#configurer-les-informations-didentification-de-la-base-de-donnees","title":"Configurer les informations d'identification de la base de donn\u00e9es","text":"

NOTE : Vous devez au moins d\u00e9finir les identifiants de votre base de donn\u00e9es et le nom de votre site. V\u00e9rifiez que votre base de donn\u00e9es existe et qu'elle est accessible avec ces identifiants.

APP_ENV=local // local ou production\nAPP_DEBUG=true // affiche ou non la barre de d\u00e9bogage et les erreurs \u00e9tendues\nAPP_KEY=SomeRandomString // sera g\u00e9n\u00e9r\u00e9 automatiquement\nAPP_NAME='Agorakit' // nom de votre application\nAPP_URL=http://locahost // url de base\nAPP_LOG=daily // rotation du journal\nAPP_DEFAULT_LOCALE=en // locale par d\u00e9faut si elle n'est pas d\u00e9tect\u00e9e par le navigateur de l'utilisateur\n\nDB_HOST=localhost // h\u00f4te de votre serveur mysql\nDB_DATABASE=agorakit // nom de votre base de donn\u00e9es SQL\nDB_USERNAME=root // login de mysql\nDB_PASSWORD= // mot de passe de mysql\n\nCACHE_DRIVER=file // driver \u00e0 utiliser pour la mise en cache\nSESSION_DRIVER=file // pilote \u00e0 utiliser pour stocker les sessions\nQUEUE_DRIVER=sync // pilote \u00e0 utiliser pour les files d'attente\n
"},{"location":"fr/install.html#configurer-lenvoi-demails","title":"Configurer l'envoi d'emails","text":"

Vous pouvez maintenant configurer votre serveur de messagerie. Pour le pilote de messagerie, vous pouvez utiliser mail pour utiliser la fonction de messagerie int\u00e9gr\u00e9e de php ou smtp pour utiliser n'importe quel serveur smtp. Choisissez le bon port (sur la plupart des serveurs, il s'agit de 25), l'h\u00f4te et le nom d'utilisateur / mot de passe.

MAIL_DRIVER=mail // pilote \u00e0 utiliser pour envoyer des emails. Utilisez mail pour utiliser la fonction mail int\u00e9gr\u00e9e de php\nMAIL_HOST=mailtrap.io // nom d'h\u00f4te si vous utilisez smtp pour envoyer des mails\nMAIL_PORT=2525 // port si vous utilisez smtp pour envoyer des mails\nMAIL_USERNAME=null // login si vous utilisez smtp pour envoyer des mails\nMAIL_PASSWORD=null // mot de passe si vous utilisez smtp pour envoyer des mails\nMAIL_ENCRYPTION=null // cryptage si vous utilisez smtp pour envoyer des mails\n\nMAIL_FROM=admin@localhost // adresse email utilis\u00e9e pour l'envoi d'emails d'administration\nMAIL_FROM_NAME=Agorakit // nom de l'exp\u00e9diteur des emails d'administration\nMAIL_NOREPLY=noreply@localhost // pas d'adresse de r\u00e9ponse pour les messages de service\n\nMAPBOX_TOKEN=null // Cr\u00e9er un compte Mapbox et g\u00e9n\u00e9rer un jeton pour permettre la g\u00e9olocalisation et l'affichage des cartes.\n

ASTUCE : Vous devez disposer d'un serveur de courrier \u00e9lectronique op\u00e9rationnel pour pouvoir v\u00e9rifier tout compte utilisateur enregistr\u00e9. Si vous ne pouvez pas v\u00e9rifier votre compte utilisateur, vous pouvez toujours mettre la colonne verified \u00e0 1 dans la table users.

"},{"location":"fr/install.html#installer-les-paquets","title":"Installer les paquets","text":"

T\u00e9l\u00e9chargez tous les paquets n\u00e9cessaires :

composer install\n
"},{"location":"fr/install.html#generer-une-cle","title":"G\u00e9n\u00e9rer une cl\u00e9","text":"
php artisan key:generate\n

Cette \u00e9tape est tr\u00e8s importante car la cl\u00e9 est utilis\u00e9e pour g\u00e9n\u00e9rer diff\u00e9rents tokens et sessions.

"},{"location":"fr/install.html#creer-les-tables-dans-la-base-de-donnees","title":"Cr\u00e9er les tables dans la base de donn\u00e9es","text":"

Migrer (cr\u00e9er toutes les tables dans) la base de donn\u00e9es :

php artisan migrate\n
"},{"location":"fr/install.html#stockage-des-fichiers-de-liens","title":"Stockage des fichiers de liens","text":"

Lier le dossier public de stockage au dossier public visible par l'utilisateur :

php artisan storage:link\n
"},{"location":"fr/install.html#creer-un-contenu-factice","title":"Cr\u00e9er un contenu factice","text":"

(Facultatif) Cr\u00e9er un exemple de contenu dans la base de donn\u00e9es :

php artisan db:seed\n

! !! avertissement Ne faites pas cette derni\u00e8re \u00e9tape pour une installation en production car elle cr\u00e9era un utilisateur admin avec un mot de passe par d\u00e9faut et des groupes et contenus factices.

"},{"location":"fr/install.html#configurez-votre-serveur-web","title":"Configurez votre serveur web","text":"

Vous pouvez maintenant configurer votre serveur web pour qu'il serve le r\u00e9pertoire /public. Ceci est tr\u00e8s important, car vous ne voulez pas exposer le reste des r\u00e9pertoires (par exemple, vous ne voulez PAS exposer votre fichier .env !).

"},{"location":"fr/install.html#configurer-un-job-cron","title":"Configurer un job cron","text":"

Une t\u00e2che cron est une t\u00e2che que votre serveur ex\u00e9cute \u00e0 des intervalles sp\u00e9cifiques pour ex\u00e9cuter des choses en arri\u00e8re-plan.

Agorakit a besoin d'effectuer p\u00e9riodiquement certaines t\u00e2ches, comme l'envoi de r\u00e9sum\u00e9s par email, le nettoyage de la base de donn\u00e9es, la suppression d'anciennes versions du contenu, la suppression d'anciens fichiers, etc...

Le script php artisan schedule:run doit \u00eatre ex\u00e9cut\u00e9 au moins toutes les 5 minutes en utilisant une t\u00e2che cron.

Suivez la documentation de Laravel cron ici : https://laravel.com/docs/master/scheduling

NOTE : Sans job cron, votre application n'enverra PAS de r\u00e9sum\u00e9s, ne nettoiera pas la base de donn\u00e9es, ne rappellera pas aux utilisateurs les \u00e9v\u00e9nements \u00e0 venir, etc. Les jobs cron sont n\u00e9cessaires pour une exploitation correcte.

"},{"location":"fr/sign_up.html","title":"Signing up","text":"

Pour utiliser Agorakit, il suffit de se connecter au serveur Agorakit que vous utilisez.

Il peut s'agir de l'instance partag\u00e9e sur https://app.agorakit.org (instance \"name your price\" disponible pour vos tests et pour les collectifs), ou d'un serveur que vous avez install\u00e9 ou que quelqu'un g\u00e8re pour vous.

"},{"location":"fr/sign_up.html#enregistrer-un-nouvel-utilisateur","title":"Enregistrer un nouvel utilisateur","text":"

Sur la plupart des serveurs, vous pouvez librement cr\u00e9er un nouveau compte utilisateur. Si vous ne pouvez pas cr\u00e9er de compte sur un serveur particulier, cela signifie que l'enregistrement a \u00e9t\u00e9 d\u00e9sactiv\u00e9. Dans ce cas, vous devez recevoir une invitation de l'administrateur du serveur pour rejoindre le serveur.

"},{"location":"fr/sign_up.html#le-cas-particulier-du-premier-compte-dutilisateur","title":"Le cas particulier du premier compte d'utilisateur","text":"

Si vous cr\u00e9ez un compte utilisateur sur un nouveau serveur (sans utilisateur existant), vous serez l'administrateur du serveur (super utilisateur) sur ce serveur.

NOTE : L'envoi d'email doit fonctionner pour que votre compte puisse \u00eatre valid\u00e9.

"},{"location":"fr/upgrade.html","title":"Mise \u00e0 jour d'Agorakit","text":"

Il est important de maintenir une installation d'Agorakit \u00e0 jour. Le processus est s\u00fbr

Nous essayons de garder la branche master toujours dans un bon \u00e9tat de fonctionnement (c'est ce qu'on appelle un mod\u00e8le de \"rolling release\").

Cela signifie que les tests sont r\u00e9ussis et que vous obtenez les derni\u00e8res fonctionnalit\u00e9s directement \u00e0 partir de la branche master.

ATTENTION : Faites une sauvegarde de votre base de donn\u00e9es SQL au cas o\u00f9 quelque chose tournerait mal. Faites \u00e9galement une sauvegarde de tous vos fichiers. Faites m\u00eame deux sauvegardes et stockez-les sur un serveur s\u00e9par\u00e9.

INFO : Vous pouvez choisir entre une proc\u00e9dure de mise \u00e0 jour automatis\u00e9e \u00e0 partir de la ligne de commande, ou une proc\u00e9dure de mise \u00e0 jour manuelle \u00e9tape par \u00e9tape.

"},{"location":"fr/upgrade.html#option-1-utilisation-du-script-de-mise-a-jour","title":"Option 1 : Utilisation du script de mise \u00e0 jour","text":"

Il existe un script d'aide qui effectue la mise \u00e0 jour pour vous :

./update\n

! !! avertissement Attention, le script migrera votre base de donn\u00e9es sans vous demander confirmation. Faites toujours une sauvegarde de la base de donn\u00e9es au cas o\u00f9 quelque chose se passerait mal.

"},{"location":"fr/upgrade.html#option-2-proceder-a-la-mise-a-jour-manuellement","title":"Option 2 : Proc\u00e9der \u00e0 la mise \u00e0 jour manuellement","text":"

Vous pouvez \u00e0 tout moment proc\u00e9der \u00e0 la mise \u00e0 jour de votre installation :

php artisan down\ngit pull\ncomposer install\nphp artisan migrate\nphp artisan up\n
"},{"location":"fr/upgrade.html#si-quelque-chose-ne-va-pas","title":"Si quelque chose ne va pas","text":"

Restaurez la sauvegarde de votre base de donn\u00e9es et faites un git checkout d'une version pr\u00e9c\u00e9dente (fonctionnelle). Puis r\u00e9ex\u00e9cutez composer install.

Contactez-nous si une mise \u00e0 jour \u00e9choue (cela n'est jamais arriv\u00e9, donc ce genre d'\u00e9chec est une information tr\u00e8s int\u00e9ressante pour le projet).

"},{"location":"fr/upgrade.html#instructions-specifiques-a-la-version","title":"Instructions sp\u00e9cifiques \u00e0 la version","text":""},{"location":"fr/upgrade.html#mise-a-jour-vers-la-version-15","title":"Mise \u00e0 jour vers la version 1.5","text":"

Apr\u00e8s la mise \u00e0 jour normale, il se peut que vous obteniez une erreur mentionnant la duplication de la cl\u00e9 du nom d'utilisateur dans la table des utilisateurs.

Ex\u00e9cutez php artisan agorakit:enforceuniqueusernames pour corriger le probl\u00e8me. Puis r\u00e9ex\u00e9cutez le script de mise \u00e0 jour.

Ceci n'arrive que sur les grosses installations et peut \u00eatre ex\u00e9cut\u00e9 plusieurs fois sans probl\u00e8me. C'est une solution \u00e0 l'\u00e9preuve du temps pour ce probl\u00e8me.

! !! note La plupart des mises \u00e0 jour ponctuelles comme celle mentionn\u00e9e ci-dessus sont maintenant effectu\u00e9es dans le cadre de migrations afin de r\u00e9duire la quantit\u00e9 de documentation que vous devez lire pour mettre \u00e0 jour correctement votre installation. Asseyez-vous, d\u00e9tendez-vous et appr\u00e9ciez l'automatisation au travail :-)

"},{"location":"fr/usage.html","title":"Utilisation d'Agorakit","text":""},{"location":"fr/usage.html#demarrer-les-discussions","title":"D\u00e9marrer les discussions","text":"

Chaque groupe permet de cr\u00e9er des discussions. Dans les discussions et les commentaires, vous pouvez utiliser une syntaxe sp\u00e9ciale pour faire r\u00e9f\u00e9rence \u00e0 des fichiers et des discussions existants, et mentionner des utilisateurs.

Vous pouvez \u00e9galement joindre directement un fichier \u00e0 une discussion. Utilisez le bouton \"Parcourir...\" situ\u00e9 sous le formulaire de discussion pour t\u00e9l\u00e9charger un fichier depuis votre ordinateur, le joindre au groupe et le mentionner dans la discussion en une seule fois.

"},{"location":"fr/usage.html#programmer-des-evenements","title":"Programmer des \u00e9v\u00e9nements","text":"

Chaque groupe dispose d'un calendrier dans lequel vous pouvez ajouter des actions/\u00e9v\u00e9nements. Il vous suffit de d\u00e9finir une date et une heure de d\u00e9but, ainsi qu'une dur\u00e9e facultative. Si aucune dur\u00e9e n'est d\u00e9finie, elle est suppos\u00e9e \u00eatre d'une heure.

"},{"location":"fr/usage.html#telecharger-des-fichiers-et-partager-des-liens","title":"T\u00e9l\u00e9charger des fichiers et partager des liens","text":"

Vous pouvez ajouter des fichiers aux groupes directement dans l'onglet des fichiers. Il suffit de t\u00e9l\u00e9charger un ou plusieurs fichiers et d'ajouter quelques balises pour les organiser. Comme expliqu\u00e9 ci-dessus, vous pouvez \u00e9galement joindre directement des fichiers aux commentaires et aux discussions.

"},{"location":"fr/usage.html#categoriser-le-contenu-a-laide-de-balises","title":"Cat\u00e9goriser le contenu \u00e0 l'aide de balises","text":"

Les tags (ou \u00e9tiquettes) sont tr\u00e8s importants pour organiser votre contenu. Vous pouvez \u00e9tiqueter n'importe quoi dans Agorakit (fichiers, utilisateurs, discussions, groupes, actions). Les administrateurs de groupes peuvent choisir d'utiliser des tags libres (n'importe qui peut choisir n'importe quel tag) ou restreindre les tags que vous pouvez utiliser dans chaque groupe (plus comme les labels github par exemple).

Une fois que le contenu est \u00e9tiquet\u00e9, il peut \u00eatre trouv\u00e9 comme une simple page d'aper\u00e7u, montrant tous les tags et montrant tous les contenus attach\u00e9s \u00e0 un tag particulier. C'est tr\u00e8s pratique pour avoir une vue d'ensemble de vos groupes.

"},{"location":"fr/usage.html#derniere-etape-le-profit","title":"Derni\u00e8re \u00e9tape : le profit !","text":"

(ou dans certains cas, r\u00e9volution !)

"},{"location":"fr/delete_content.html","title":"Suppression de contenu","text":"

La suppression de contenu sur Agorakit respecte une proc\u00e9dure qui permet de r\u00e9pondre \u00e0 diff\u00e9rents imp\u00e9ratifs:

Quand un contenu est effac\u00e9, celui-ci est marqu\u00e9 comme effac\u00e9 dans la base de donn\u00e9e et n'apparait plus. Un administrateur d'instance peut remettre en ligne un contenu effac\u00e9 en se rendant dans le menu \"admin > r\u00e9cup\u00e9rer du contenu\".

Le contenu marqu\u00e9 comme effac\u00e9 est d\u00e9finitivement effac\u00e9 (physiquement) de la base de donn\u00e9e apr\u00e8s 30 jours. Il n'est plus possible apr\u00e8s ce d\u00e9lai de r\u00e9cup\u00e9rer le contenu.

"},{"location":"fr/delete_content.html#suppression-de-compte-utilisateur","title":"Suppression de compte utilisateur","text":"

Si un utilisateur d\u00e9cide d'effacer son compte, il peut au choix :

Les discussions qui ont des commentaires sont dans tous les cas assign\u00e9es \u00e0 l'utilisateur anonyme afin de ne pas perdre les contributions des autres utilisateurs. Il n'est pas possible d'effacer individuellement une discussion sous laquelle il y a des commentaires.

Un utilisateur qui est le seul administrateur d'un groupe ne peux pas quitter le groupe.

"},{"location":"fr/delete_content.html#restauration-dun-element-efface","title":"Restauration d'un \u00e9l\u00e9ment effac\u00e9","text":"

Un administrateur d'instance peut restaurer tout contenu effac\u00e9 pendant la p\u00e9riode de r\u00e9tention (30 jours par d\u00e9faut). Il suffit de se rendre dans Admin > settings > recover content et de choisir le ou les \u00e9l\u00e9ments \u00e0 restaurer.

"},{"location":"fr/delete_content.html#nettoyage-de-la-base-de-donnee","title":"Nettoyage de la base de donn\u00e9e","text":"

Si Agorakit est install\u00e9 correctement (avec les t\u00e2ches \"cron\" r\u00e9curentes), la base de donn\u00e9e va \u00eatre automatiquement nettoy\u00e9e afin d'\u00eatre en conformit\u00e9 avec ce qui est indiqu\u00e9 ci-dessus. Le nombre de jours de r\u00e9tention des informations avant suppression d\u00e9finitive est configurable et fix\u00e9 par d\u00e9faut \u00e0 30.

"},{"location":"fr/discussions.html","title":"Cr\u00e9er des discussions","text":"

Choisissez un groupe et depuis l'onglet \"Discussions\" vous pouvez \"Cr\u00e9er une discussion\". Mentionnez un titre et un texte au minimum. Vous pouvez aussi ajouter des mots cl\u00e9 ou tags afin de mieux classer les discussions et aider les autres \u00e0 s'y retrouver.

"},{"location":"fr/discussions.html#joindre-un-fichier","title":"Joindre un fichier","text":"

Dans l'\u00e9diteur de texte, vous pouvez joindre un fichier en le faisant glisser dessus ou en cliquant sur le bouton \"image\" qui permet non seulement d'ins\u00e9rer une image mais \u00e9galement tout type de fichier. Lors d'un \"drag and drop\" (gliss\u00e9 d\u00e9pos\u00e9 de fichier), le syst\u00e8me envoit automatiquement votre fichier et ins\u00e8re l\u00e0 o\u00f9 se trouve votre curseur une r\u00e9f\u00e9rence \u00e0 ce fichier sous la forme d'un f:xx (xx \u00e9tant la r\u00e9f\u00e9rence de votre fichier). Lors de l'affichage de votre discussion ou de votre commentaire, un apper\u00e7u du fichier sera automatiquement g\u00e9n\u00e9r\u00e9.

Le fichier apparait \u00e9galement dans l'onbglet \"fichiers\" de votre groupe.

"},{"location":"fr/discussions.html#mentionner-une-autre-personne","title":"Mentionner une autre personne","text":"

Dans l'\u00e9diteur de texte, tapez simplement un @ , une liste des membres du groupe apparait et vous permet de mentionner une ou plusieurs personnes. Celles-ci recevront un mail instantan\u00e9ment avec votre commentaire. C'est pratique quand vous souhaitez avoir une r\u00e9ponse rapide \u00e0 votre question.

"},{"location":"fr/discussions.html#effacer-un-commentaire-ou-une-discussion","title":"Effacer un commentaire ou une discussion","text":"

Cliquez simplement sur les troios petits points \u00e0 droite de la discussion ou du commentaire en question : (...) et choisissez l'option \"Effacer\". L'auteur.e d'un message peut toujours l'effacer. Un.e admin de groupe peux tout effacer.

Warning

Le fait d'effacer une discussion n'efface pas les fichiers joints \u00e0 cette discussion.

"},{"location":"fr/groups_types.html","title":"Les diff\u00e9rents types de groupes disponible dans Agorakit","text":"

En fonction du type de communaut\u00e9 que vous souhaitez cr\u00e9er, vous avez \u00e0 votre disposition diff\u00e9rents types de groupes.

"},{"location":"fr/groups_types.html#les-groupes-publics","title":"Les groupes publics","text":"

Ces groupes sont ouverts \u00e0 tout le monde, et leur contenu est public. N'importe qui peut se cr\u00e9er un compte sur l'instance et rejoindre un groupe public. Une petite ic\u00f4ne de plan\u00e8te est affich\u00e9e \u00e0 c\u00f4t\u00e9 du nom.

"},{"location":"fr/groups_types.html#les-groupes-prives","title":"Les groupes priv\u00e9s","text":"

Ces groupes sont sur invitation uniquement et leur contenu n'est pas public. Seul est visible la pag de pr\u00e9sentation du groupe (comprenant la photo du groupe et le texte de description). Si le groupe autorise les utilisateurs \u00e0 candidater, un onglet permet de le faire. Une petite ic\u00f4ne de cadenas est affich\u00e9e \u00e0 c\u00f4t\u00e9 du nom.

"},{"location":"fr/groups_types.html#les-groupes-secrets","title":"Les groupes secrets","text":"

Ces groupes sont totalement invisibles pour celles et ceux qui n'en connaissent pas l'existence. Si vous n'\u00eates pas invit\u00e9 \u00e0 un tel groupe vous n'y avez pas acc\u00e8s. Une petite ic\u00f4ne d'oeuil barr\u00e9 est affich\u00e9e \u00e0 c\u00f4t\u00e9 du nom.

"},{"location":"fr/login.html","title":"Acc\u00e9der \u00e0 Agorakit","text":"

Vous devez d'abord d\u00e9terminer si vous utilisez l'agora partag\u00e9e sur https://app.agorakit.org ou si vous utilisez l'agora de votre organisme. Dans le premier cas, allez simplement sur https://app.agorakit.org, dans le second cas, vous aurez re\u00e7u un lien pour vous connecter.

"},{"location":"fr/login.html#se-creer-un-compte","title":"Se cr\u00e9er un compte","text":"

La cr\u00e9ation de compte est tr\u00e8s facile, vous devez simplement cliquer sur \"S'enregistrer\", mentionner votre nom et votre adresse mail. Vous recevrez directement un lien pour vous connecter dans votre boite mail. V\u00e9rifiez le dossier spam si vous navez rien re\u00e7u apr\u00e8s quelques minutes.

"},{"location":"fr/login.html#se-connecter","title":"Se connecter","text":"

Cliquer sur le bouton connexion, entrez votre nom d'utilisateur.trice ou votre mail et votre mot de passe. Si vous avez oubli\u00e9 votre mot de passe, laissez la case 'mot de passe' vide, le syst\u00e8me vous enverra un lien de connexion par mail.

"},{"location":"fr/tags.html","title":"Les tags, qu'est-ce que c'est et \u00e0 quoi \u00e7a sert?","text":"

Le classement du contenu est une science. On l'appelle la taxonomie. C'est aussi parfois l'enfer, surtout quand on travaille \u00e0 plusieurs sur des fichiers.

O\u00f9 se trouve le dernier PV? Dans /premier-trimestre/r\u00e9unions/2021 ou dans /2021/premier-trimestre/pv ? ou encore dans admin/pv/2021 ?

Ce type de question arrive fr\u00e9quemment quand un groupe de personne classe diff\u00e9rents documents dans une structure hi\u00e9rarchique de dossiers. Chacun ayant sa logique de classement, les documents sont vites \u00e9parpill\u00e9s et il devient tr\u00e8s difficile de les retrouver.

La solution propos\u00e9e par Agorakit est d'utiliser les tags (ou mots cl\u00e9s) pour classer le contenu. Ceux-ci consistent en de simples mots cl\u00e9s que l'on peut appliquer au contenu. L'avantage est que l'on peut inventer un vocabulaire simple, \u00e9ventuellement limit\u00e9 \u00e0 quelques mots cl\u00e9s, et sans hi\u00e9rarchie qui d\u00e9pendrait trop de la logique de classement de chacun.

Info

Ainsi, un PV dat\u00e9 de 2021 sera simplement tagg\u00e9 PVet 2021 et sera tr\u00e8s facile \u00e0 retrouver ult\u00e9rieurement.

Les tags peuvent \u00eatre appliqu\u00e9s \u00e0 des personnes, \u00e0 des groupes, des discussions, des \u00e9v\u00e9nements et des fichiers.

Le fait de cliquer sur un tag vous permet de voir tous les autres \u00e9l\u00e9ments tagg\u00e9s de la m\u00eame fa\u00e7on.

Info

Celles et ceux qui le souhaitent peuvent n\u00e9anmoins classer les fichiers par dossier. Une combinaison des deux syst\u00e8mes est \u00e9galement envisageable. A vous de voir ce qui marche le mieux pour votre groupe.

"},{"location":"fr/tags.html#limiter-les-tags-utilisables","title":"Limiter les tags utilisables","text":"

Mais les tags ne r\u00e8glent pas tout. Si votre groupe est de taille importante ou que vous avez beaucoup de contenu, il est possible qu'un moment vous vous retrouviez avec trop de tags diff\u00e9rents et non normalis\u00e9s.

Dans ce cas, mieux vaut confier r\u00e9fl\u00e9chir un instant aux tags r\u00e9ellement n\u00e9cessaire et \u00e0 limiter les tags disponibles dans votre groupe. Vous pouvez tr\u00e8s facilement le faire en allant dans les r\u00e9glages de votre groupe (G\u00e9rer > Tags).

Idem pour les utilisateurs et les groupes, afin d'uniformiser les profils des personnes et surtout de permettre \u00e0 chacun de retrouer quelqu'un en fonction de mots cl\u00e9s communs \u00e0 tous, vous pouvez limiter les tags utilisables dans les profils utilisateurs dans le menu Admin > Settings.

"},{"location":"fr/users_types.html","title":"Types d'utilisateurs","text":"

Agorakit dispose de diff\u00e9rents types d'utilisateurs. Les voici par ordre de permissions, des plus \u00e9tendues aux plus restreintes :

"},{"location":"fr/users_types.html#administrateurtrice-dinstance","title":"Administrateur.trice d'instance","text":"

Il s'agit d'une personne qui dispose de tous les droits d'acc\u00e8s \u00e0 une instance (installation) d'Agorakit. Cette personne peut tout faire : - acc\u00e9der \u00e0 tous les groupes y compris les groupes secrets - modifier les r\u00e9glages de l'installation - modifier et effacer n'importe quel contenu

"},{"location":"fr/users_types.html#administrateurtrice-de-groupe","title":"Administrateur.trice de groupe","text":"

Toute personne cr\u00e9ant un groupe devient automatiquement administrateur de ce groupe. Cela permet de : - modifier les r\u00e9glages du groupe y compris les permissions des membres - acc\u00e9der \u00e0 la liste compl\u00e8te des participants y compris leur adresse mail - promouvoir n'importe quel membre au statut d'admin - changer le statut de n'importe quel membre y compris le sortir du groupe - modifier et effacer n'importe quel contenu du groupe

"},{"location":"fr/users_types.html#membre-dun-groupe","title":"Membre d'un groupe","text":"

Toute personne membre d'un groupe dispose au minimum de la permission de voir l'ensemble du contenu du groupe. Elle peut en plus, en fonction des permissions d\u00e9finies pour le groupe en question : - cr\u00e9er des discussions - cr\u00e9er des \u00e9v\u00e9nements \u00e0 l'agenda - ajouter des fichiers - inviter de nouveaux participants

"},{"location":"fr/users_types.html#membre-invite","title":"Membre invit\u00e9","text":"

Dans le cas d'un groupe ferm\u00e9 : quand un utilisateur a \u00e9t\u00e9 invit\u00e9 par mail \u00e0 rejoindre un groupe, il re\u00e7oit le status d'invit\u00e9. D\u00e8s qu'il confirme la demande, il devient membre effectif du groupe.

"},{"location":"fr/users_types.html#candidat-dun-groupe","title":"Candidat d'un groupe","text":"

Quand une personne demande \u00e0 rejoindre un groupe ferm\u00e9, elle a le statut de candidat. Un des administrateurs du groupe doit accepter ou refuser sa candidature.

"},{"location":"fr/users_types.html#desenregistre-supprime","title":"D\u00e9senregistr\u00e9 / supprim\u00e9","text":"

Ce statut est attribu\u00e9 aux personnes qui ont supprim\u00e9 leur compte de l'instance Agorakit.

"},{"location":"fr/users_types.html#a-refuse","title":"A refus\u00e9","text":"

Ce statut est attribu\u00e9 aux personnes qui ont refus\u00e9 une invitation \u00e0 rejoindre le groupe. Il est fortement conseill\u00e9 de ne pas les recontacter \u00e0 propos du groupe, selon leur souhait, sauf bien entendu si il s'agit d'une fausse manoeuvre de leur part :-)

"},{"location":"fr/users_types.html#blackliste","title":"Blacklist\u00e9","text":"

Ce statut est attribu\u00e9 \u00e0 une personne qui ne peut plus rejoindre le groupe.

"}]} \ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json new file mode 100644 index 0000000..f2d07d5 --- /dev/null +++ b/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en","fr"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"index.html","title":"Agorakit : collective's collaboration simplified","text":"

Agorakit is an open source, web based groupware for collectives. It allows groups to communicate, organize events and store their files. It keeps everyone in your collaborative group updated with a discussion forum, agenda for events, file manager and email notifier.

And most of the time Agorakit doesn't need an admin, keeping the process as horizontal as possible.

"},{"location":"index.html#trying-agorakit","title":"Trying Agorakit","text":"

If you want to try Agorakit without installing it, go to https://app.agorakit.org, create an account there and create or join some groups.

"},{"location":"index.html#how-to-install-agorakit","title":"How to install Agorakit?","text":"

As a server admin , you might want to install and later upgrade Agorakit. Agorakit is written in PHP using the Laravel framework.

"},{"location":"index.html#user-guide","title":"User guide","text":"

If you are group member looking for help, check the user guide. If you are a group administrator on an new installation of Agorakit looking for help, check the group owner quickstart.

"},{"location":"index.html#contributing","title":"Contributing","text":"

If you are looking for ways to contribute (great!), check the contribution guide.

Note

This documentation is written in markdown and built using Mkdocs-material. Your help is hugely appreciated on any front, including documentation :-)

"},{"location":"advanced_config.html","title":"Advanced configurations","text":""},{"location":"advanced_config.html#setup-inbound-emails","title":"Setup inbound emails","text":"

This additional step allows you to have one mailbox for each group so members can post by email to create discussions and reply to discussions emails to create new comments.

Note

Inbound email support is experimental but in use on several instances. You might however experience bugs, please report them if it happens to your installation.

Let's say you installed Agorakit on agora.example.org :

# Inbox mail box server settings, use for incoming emails.\n# Set INBOX_DRIVER to null to disable this feature\nINBOX_DRIVER=imap\nINBOX_HOST=yourmailhost.tld\nINBOX_USERNAME=username of the mailbox\nINBOX_PASSWORD=password of the mailbox\nINBOX_PREFIX=\nINBOX_SUFFIX=@agora.example.org\n
"},{"location":"advanced_config.html#definign-prefixes-and-suffixes","title":"Definign prefixes and suffixes","text":"

You need to fill prefix and suffix. Two cases there :

If you enable inbound email, the mailbox will be automatically checked and processed email will be put in a \"processed\" folder under INBOX. Failed emails will be similarly put a \"failed\" folder under INBOX for inspection.

"},{"location":"advanced_config.html#external-authentification","title":"External authentification","text":"

Info

External authentification has been removed. I have fery few (if any) people ask for it. It is a privacy invading feature so no developement has been done on ths front. Feel free to submit PR if you want this.

"},{"location":"artisan.html","title":"Useful artisan commands","text":"

Agorakit provides some useful artisan commands :

Warning

Most of those commands are already used by the cron job, so they don't need to be called manually. But they might be useful for debugging and development.

"},{"location":"contact.html","title":"How to contact us","text":"

You can contact the Agorakit team directly on info [at] agorakit [dot] org

You can also join the official developer's group here, on Agorakit of course : https://app.agorakit.org/groups/39

"},{"location":"contribute.html","title":"Introduction","text":"

You'd like to contribute to agorakit? Thank you !

"},{"location":"contribute.html#you-are-a-communication-support-person","title":"You are a communication & support person ?","text":"

There are tons of way to contribute, everything is highly appreciated.

"},{"location":"contribute.html#you-are-a-developer-proficient-with-laravelphphtmlcssjs","title":"You are a developer proficient with laravel/php/html/css/js ?","text":"

Make a branch of the master branch, work on your branch and create a pull request when ready. See http://scottchacon.com/2011/08/31/github-flow.html

"},{"location":"contribute.html#financial-support","title":"Financial support","text":""},{"location":"contribute.html#licence","title":"Licence","text":"

All the work is open source (AGPL) - Your work will benefit every interested citizen initiative. We already have 1000's of users who might benefit from your help. The work is made under the AGPL licence. - It also means that if you use this codebase, you must contribute back your changes.

Please drop a line to info (at) agorakit.org if you are interested or have any question.

"},{"location":"development.html","title":"Contributing to Agorakit","text":"

You want to contribute to the project? Great! Any idea is welcome.

"},{"location":"development.html#developement-server","title":"Developement server","text":""},{"location":"development.html#using-laravel-sail","title":"Using Laravel Sail","text":"

Sail is a docker wrapper to ease local development. It's a really cool and easy way to have a perfect local server for devs. Laravel sail works out of the box in this project. Read the Sail documentation for more informations.

This is what I use on my main workstation (linux based) since it's very reproductible.

Basically, sail up will start a developement server

"},{"location":"development.html#using-artisan-serve","title":"Using artisan serve","text":"

If you want to start a local server for development:

$ php artisan serve\n

The install will be available to 127.0.0.1:8000

There are a lot of other options, check the laravel doc and ecosystem to have an overview of the options for local developement.

"},{"location":"development.html#seed-the-db","title":"Seed the DB","text":"

First follow the installation instructions including the creation of sample content using :

$ php artisan db:seed\n
"},{"location":"development.html#working-on-design-and-css","title":"Working on design and css","text":"

I ditched all build steps, now everything happens in a flat custom.css file.

All external JS and CSS are served from various CDN's. At some point the files will be re-served from local, when everything will be stabilized, and if there are real benefits of doing so.

No npm, no node, no tailwind, no purge, no minifier, no trouble :)

"},{"location":"development.html#testing-your-code","title":"Testing your code","text":"

Agorakit is tested using the Laravel testing framework.

In order to test, you need to have an existing testing database. Just create an additional empty DB, for instance agorakit_testing and check in the phpunit.xml file that everything matches.

Before comiting code, you should either write more tests (in this case you deserve a cookie). Or at least check that you didn't break anything by simply typing::

php artisan test\n

...in the root of your project.

No error should appear (provided that you have everything correctly set up.

We use travis ci to run all those tests on commit so it will be done automatically for you at some point :-)

"},{"location":"development.html#writing-tests","title":"Writing tests","text":"

Don't hesitate to write tests. We favor well defined tasks an end user would really accomplish, like registering, creating an account, posting, uploading, etc... It has served us very well in the past to spot errors and it really mirrors real use cases. Although we are open to other kind of tests as well...

"},{"location":"documentation.html","title":"Contribute to the documentation","text":"

Documentation is written in markdown and the website is statically built using Mkdocs material

Note

New languages, better wording, new sections, more visuals, any fixes even small ones are welcome!

"},{"location":"documentation.html#how-to-contribute","title":"How to contribute ?","text":"

Tip

Using Visual Studio Code to work on code and markdown files is a reasonably simple option. You additionaly get a built in user interface for git and github integration, which is nice for beginners.

"},{"location":"documentation.html#how-to-build-the-docs","title":"How to build the docs ?","text":"

Install mkdocs material and a few plugins.

pip install mkdocs-material\npip install markdown-callouts\npip install mkdocs-static-i18n\n

Then start the built-in webserver to preview your work on the documentation.

mkdocs serve\n

The documentation is currently served by github pages. The workflow for publication is localted here : https://github.com/agorakit/documentation/actions/workflows/ci.yml

How this works ? Each time a commit is made on main or master branch, the doc are built using https://github.com/mhausenblas/mkdocs-deploy-gh-pages (this is a git action that does the work for us)

The resulting files are put into the GH-branch of the documentation repository which is then serbed using the github \"pages\" feature.

It's a bit painful to configure but it seems that once done, it works.

See https://squidfunk.github.io/mkdocs-material/getting-started/ for more informations on how the documentation builder works.

"},{"location":"first_steps.html","title":"First steps after installation","text":"

If you just installed Agorakit on a server, take some time to configure it correctly for your use case.

"},{"location":"first_steps.html#introduction-text-on-the-homepage","title":"Introduction text on the homepage","text":"

Set an intro text on the homepage for newcomers : go to the admin page from your user profile dropdown. Using the editor you can add external images and whatever you want.

"},{"location":"first_steps.html#check-all-the-admin-settings","title":"Check all the admin settings","text":"

Go to the admin menu (from your user profile dropdown) and check all the settings there. Pay attention to the various permissions and group types you allow on your server.

"},{"location":"group.html","title":"Create and manage your groups","text":""},{"location":"group.html#create-groups","title":"Create groups","text":"

Create one or more groups. A welcome and a test group are often useful.

You can choose the type of group to create

Note

Future releases of Agorakit might include more granular control of group types and membership access. Your input is valuable to further enhance this part.

"},{"location":"group.html#group-settings","title":"Group settings","text":"

If you are admin of a group, you will have an \"admin\" tab on the group(s) you manage. There you can manage a lot of things in yout group.

"},{"location":"group.html#the-configuration-menu","title":"The \"configuration\" menu","text":"

This tab lets you add a description to your group, set the group tags, define a location (address) and set the group type (see above).

"},{"location":"group.html#the-tags-menu","title":"The \"tags\" menu","text":"

This menu allows you to choose which tagging strategy you want in your group:

Note

Altough free tagging looks nice, it is often a good idea to settle on  a fixed set of tags together and then stick to it in your group. \"Less is more\" and \"everyone has a different way to organize content, so let's stick to one way of doing it\".\n

Group admins may also define tag colors. The colors are shared among groups.

"},{"location":"group.html#the-features-menu","title":"The \"features\" menu","text":"

This menu allows you to enable and disable the tabs available in your group. This way you can enable or disable :

You have also the opportunity to add one custom tab to your group with a custom icon and custom HTML. Use it to include additional content that must be shared amongst all group members.

"},{"location":"group.html#the-permissions-menu","title":"The \"permissions\" menu","text":"

This menu allows you to choose what members are able to do or not in your group. This is quite self explanatory, just check the permissions you want to allow for regular members in your group. By default members have all permissions.

"},{"location":"group.html#the-insights-menu","title":"The \"insights\" menu","text":"

This one shows you some interesting stats about your groups and some nice graphs as well.

"},{"location":"group.html#invite-people","title":"Invite people","text":"

Invite people to one or more groups using the invite feature of each group. You can also add people directly if the already registered on your install. This is particularly useful if people have a hard time to confirm their email address and membership (trust me it happens).

"},{"location":"group.html#memberships","title":"Memberships","text":"

On this page, you can view and export the list of members of your group. You can also check if everyone has accepted an invitation to join a group.

Note

The \"Last activity\" field shows the last time someone wrote something not the last time someone connected to the system. It might be misleading.

"},{"location":"install.html","title":"Installation","text":"

Trying Agorakit without installation

If you are just looking to give Agorakit a try, you can do that without having to install it. Just create an account on https://app.agorakit.org, an Agorakit instance for citizen-activists and for evaluation purposes.

You can also get in touch with the developper if you are interested in managed hosting of a private Agorakit instance. Contact info [at] agorakit.org for more details.

Keep reading if you want to install an Agorakit instance on your own server.

"},{"location":"install.html#requirements","title":"Requirements","text":"

You need a good web hosting provider that provides the following :

Note

All those features together are hard to find, so people are obliged to use a VPS and setup everything themselves. This is a riskier proposal if you don't know how it works. We have been very successful with Alwaysdata shared hosting. By the way they host at a reduced fee the free instance of Agorakit.

"},{"location":"install.html#install","title":"Install","text":"

Currently, you need to know how to install a Laravel application using the command line. This is perfectly standard and documented here : https://laravel.com/docs/master/installation.

"},{"location":"install.html#clone-the-repository","title":"Clone the repository","text":"
git clone https://github.com/agorakit/agorakit\n

This will create an agorakit directory in the current path.

"},{"location":"install.html#create-the-env-file","title":"Create the .env file","text":"

All settings are stored in a .env file. This file is not provided in the Git repository, because it is specific to your installation, and because you don't want your configuration to be overwritten when doing an upgrade :-)

Create and edit the configuration file from the example file provided:

cp .env.example .env\nnano .env\n

Nano is a simple text editor available on most servers. Feel free to use something else to edit your .env file.

"},{"location":"install.html#setup-your-database-credentials","title":"Setup your database credentials","text":"

Note

You need to set at least your database credentials & site name. Check that your database exists and is reachable with those credentials.

APP_ENV=local  // local or production\nAPP_DEBUG=true // show the debugbar and extended errors or not\nAPP_KEY=SomeRandomString // will be auto generated\nAPP_NAME='Agorakit' // name of your application\nAPP_URL=http://locahost // base url\nAPP_LOG=daily // log rotation\nAPP_DEFAULT_LOCALE=en // default locale when not detected from user browser\n\nDB_HOST=localhost // host of your mysql server\nDB_DATABASE=agorakit // db name of your sql DB\nDB_USERNAME=root // login of mysql\nDB_PASSWORD= // password of mysql\n\nCACHE_DRIVER=file // driver to use for caching\nSESSION_DRIVER=file // driver to use for storing sessions\nQUEUE_DRIVER=sync // driver to use for queues\n
"},{"location":"install.html#setup-email-sending","title":"Setup email sending","text":"

You can now configure your mail server. For the mail driver you can use mail to use php built in mail function or smtp to use any smtp server. Choose the right port (on most servers this is 25), host and username / password.

MAIL_DRIVER=mail // driver to use for sending emails. Use mail to use php built-in mail function\nMAIL_HOST=mailtrap.io // hostname if you use smtp for sending mails\nMAIL_PORT=2525 // port if you use smtp for sending mails\nMAIL_USERNAME=null // login if you use smtp for sending mails\nMAIL_PASSWORD=null // password if you use smtp for sending mails\nMAIL_ENCRYPTION=null // encryption if you use smtp for sending mails\n\nMAIL_FROM=admin@localhost // from email adress used when sending admin emails\nMAIL_FROM_NAME=Agorakit // name of sender of admin emails\nMAIL_NOREPLY=noreply@localhost // no reply adress for service messages\n\nMAPBOX_TOKEN=null // Create a Mapbox account and generate a token to enable geolocalisation and display maps\n

Tip

You need a working email server to be able to verify any registered user account. If you cannot verify your user account, you can always set the column verified to 1 inside the users table.

"},{"location":"install.html#install-the-packages","title":"Install the packages","text":"

Download all the packages needed:

composer install\n
"},{"location":"install.html#generate-a-key","title":"Generate a key","text":"
php artisan key:generate\n

This is a very important step since the key is used to generate various tokens and sessions.

"},{"location":"install.html#create-the-tables-in-the-db","title":"Create the tables in the DB","text":"

Migrate (create all tables in) the database:

php artisan migrate\n
"},{"location":"install.html#link-file-storage","title":"Link file storage","text":"

Link the storage public folder to the user visible public folder:

php artisan storage:link\n
"},{"location":"install.html#create-dummy-content","title":"Create dummy content","text":"

(Optional) Create sample content the database:

php artisan db:seed\n

Warning

Don't do this last step for a production install since it will create an admin user with default password and dummy groups and content.

"},{"location":"install.html#setup-your-web-server","title":"Setup your web server","text":"

You can now setup your web server to serve the /public directory. This is very important, since you don't want to expose the rest of the directories (for example you DON'T want to expose your .env file!)

"},{"location":"install.html#setup-a-cron-job","title":"Setup a cron job","text":"

A cron job is a task your server runs at specific intervals to run stuff in the background.

Agorakit needs to periodically do some tasks, like sending email summaries, celaning the DB, remove old versions of content, delete old files, etc...

The script php artisan schedule:run should be run at least every 5 minutes using a cron job.

Follow Laravel cron documentation here : https://laravel.com/docs/master/scheduling

Note

Without cron job your application will NOT send summaries, clean the DB, remind users of upcoming events, etc. Cron jobs are required for correct opperation.

"},{"location":"sign_up.html","title":"Signing up","text":"

To use Agorakit, simply connect to the Agorakit server you are using.

This can be either the shared instance at https://app.agorakit.org (\"name your price\" instance available for your tests and for collectives), or a server you have installed or someone manages for you.

"},{"location":"sign_up.html#registering-a-new-user","title":"Registering a new user","text":"

On most servers, you can freely create a new user account. If you cannot create an account on a particular server it means registration has been disabled. In this case you need an invitation from the server admin to join the server.

"},{"location":"sign_up.html#the-special-case-of-the-first-user-account","title":"The special case of the first user account","text":"

If you register a user account on a new server (one without any existing user), you will be the server admin (super user) on this server.

Note

You need to have email sending working in order to validate your account.

"},{"location":"upgrade.html","title":"Upgrade Agorakit","text":"

It is important to keep an up to date installation of Agorakit. The process is safe

We try to keep the master branch always in a good, safe, and working condition (this is called a \"rolling release\" model).

That means that tests passes and that you get the latest features directly from the master branch.

Warning

Make a backup of your SQL database in case something goes wrong. Make a backup of all your files as well. Make two backups even, and store them on a separate server.

Info

You can choose between an automated update procedure from the command line, or a step by step to update manually.

"},{"location":"upgrade.html#option-1-using-the-update-script","title":"Option 1 : Using the update script","text":"

There is a helper script that does the update for you :

./update\n

Warning

Beware that the script will migrate your database without asking for confirmation. Always make a backup of the database just in case something goes wrong.

"},{"location":"upgrade.html#option-2-proceed-with-the-update-manually","title":"Option 2 : Proceed with the update manually","text":"

You can at anytime do this to update your install :

php artisan down\ngit pull\ncomposer install\nphp artisan migrate\nphp artisan up\n
"},{"location":"upgrade.html#if-something-goes-wrong","title":"If something goes wrong","text":"

Restore your database backup and git checkout a previous (working) version. Then re-run composer install.

Contact us if an update fails (it never happened so this kind of failure is highly interesting information for the project).

"},{"location":"upgrade.html#version-specific-instructions","title":"Version Specific Instructions","text":""},{"location":"upgrade.html#upgrade-to-15","title":"Upgrade to 1.5","text":"

After the normal update you might get an error mentioning duplicate username key in user table.

Run php artisan agorakit:enforceuniqueusernames to fix the issue Then re-run the update script.

This happens only on large installs and can be run multiple times without problem. It's a future proof fix for this issue.

Note

Most one time upgrades like the one mentionned above are now made inside migrations to reduce the amount of documentation you need to read in order to properly upgrade your installation. Sit back, relax, and enjoy automation at work :-)

"},{"location":"usage.html","title":"Using Agorakit","text":""},{"location":"usage.html#start-discussions","title":"Start discussions","text":"

Each group allows one to create discussions. Within discussions and comments, you can use a special syntax to reference existing files and discussions, and mention users.

You may also directly attach a file to a discussion. Use the \"Browse...\" button below the discussion form to upload a file from your computer, attach it to the group, and mention it in the discussion in one go.

"},{"location":"usage.html#schedule-events","title":"Schedule events","text":"

Each group has a calendar where you can add actions/events. You just need to set a start date and time, and an optional duration. If no duration is set, it is assumed to be 1 hour.

"},{"location":"usage.html#upload-files-and-share-links","title":"Upload files and share links","text":"

You can add file to groups directly in the files tab. Just upload one or more files, add some tags for organization. As explained above, you can also directly attach files to comments and discussions.

"},{"location":"usage.html#categorize-content-using-tags","title":"Categorize content using tags","text":"

Tags (aka Labels) are very important to organize your content. You can tag anything in Agorakit (files, users, discussions, groups, actions). Group admins can either choose to use freeform tagging (anyone can choose any tag) or restrict the tags you can use in each group (more like github labels for example).

Once content is tagged, it can be found as a simple overview page, showing all tags and showing all content attached to a particular tag. Great to have a big overview of your groups.

"},{"location":"usage.html#last-step-profit","title":"Last step : profit !","text":"

(or in some cases, revolution!)

"},{"location":"fr/index.html","title":"Agorakit : la collaboration collective simplifi\u00e9e","text":"

Agorakit est un collecticiel open source, web based pour collectifs. Il permet aux groupes de communiquer, d'organiser des \u00e9v\u00e9nements et de stocker leurs fichiers. Il permet \u00e0 tous les membres de votre groupe collaboratif de se tenir au courant gr\u00e2ce \u00e0 un forum de discussion, un agenda pour les \u00e9v\u00e9nements, un gestionnaire de fichiers et un notificateur d'emails.

La plupart du temps, Agorakit n'a pas besoin d'administrateur, ce qui rend le processus aussi horizontal que possible.

"},{"location":"fr/index.html#essayer-agorakit","title":"Essayer Agorakit","text":"

Si vous voulez essayer Agorakit sans l'installer, allez sur https://app.agorakit.org, cr\u00e9ez un compte et cr\u00e9ez ou rejoignez des groupes.

"},{"location":"fr/index.html#comment-installer-agorakit","title":"Comment installer Agorakit ?","text":"

En tant qu'administrateur de serveur, vous pourriez vouloir installer et plus tard mettre \u00e0 jour Agorakit. Agorakit est \u00e9crit en PHP en utilisant le framework Laravel.

"},{"location":"fr/index.html#guide-de-lutilisateur","title":"Guide de l'utilisateur","text":"

Si vous \u00eates membre d'un groupe et que vous avez besoin d'aide, consultez le user guide. Si vous \u00eates administrateur d'un groupe sur une nouvelle installation d'Agorakit et que vous avez besoin d'aide, consultez le group owner quickstart.

"},{"location":"fr/index.html#contribuer","title":"Contribuer","text":"

Si vous cherchez des moyens de contribuer (super !), voyez le guide de contribution.

NOTE : Cette documentation est \u00e9crite en markdown et construite en utilisant Mkdocs-material. Votre aide est tr\u00e8s appr\u00e9ci\u00e9e sur tous les fronts, y compris la documentation :-)

"},{"location":"fr/advanced_config.html#configurer-les-courriels-entrants","title":"Configurer les courriels entrants","text":"

Cette \u00e9tape suppl\u00e9mentaire vous permet d'avoir une bo\u00eete aux lettres pour chaque groupe afin que les membres puissent envoyer des messages par courriel pour cr\u00e9er des discussions et r\u00e9pondre aux courriels des discussions pour cr\u00e9er de nouveaux commentaires.

! !! note Le support des emails entrants est exp\u00e9rimental mais utilis\u00e9 sur plusieurs instances. Il est possible que vous rencontriez des bogues, veuillez les signaler si cela se produit dans votre installation.

Disons que vous avez install\u00e9 Agorakit sur agora.example.org :

# Param\u00e8tres du serveur de la bo\u00eete aux lettres, \u00e0 utiliser pour les courriels entrants.\n# D\u00e9finissez INBOX_DRIVER \u00e0 null pour d\u00e9sactiver cette fonctionnalit\u00e9\nINBOX_DRIVER=imap\nINBOX_HOST=votremailhost.tld\nINBOX_USERNAME=nom d'utilisateur de la bo\u00eete aux lettres\nINBOX_PASSWORD=mot de passe de la bo\u00eete aux lettres\nINBOX_PREFIX=\nINBOX_SUFFIX=@agora.example.org\n
"},{"location":"fr/advanced_config.html#definir-les-prefixes-et-les-suffixes","title":"D\u00e9finir les pr\u00e9fixes et les suffixes","text":"

Vous devez renseigner le pr\u00e9fixe et le suffixe. Il y a deux cas de figure :

Si vous activez les emails entrants, la bo\u00eete aux lettres sera automatiquement v\u00e9rifi\u00e9e et les emails trait\u00e9s seront plac\u00e9s dans un dossier \"processed\" sous INBOX. Les courriels \u00e9chou\u00e9s seront \u00e9galement plac\u00e9s dans un dossier \"failed\" sous INBOX pour inspection.

"},{"location":"fr/advanced_config.html#authentification-externe","title":"Authentification externe","text":"

! !! info L'authentification externe a \u00e9t\u00e9 supprim\u00e9e. Je n'ai que tr\u00e8s peu (voire pas du tout) de personnes qui l'ont demand\u00e9e. Il s'agit d'une fonctionnalit\u00e9 qui porte atteinte \u00e0 la vie priv\u00e9e, c'est pourquoi aucun d\u00e9veloppement n'a \u00e9t\u00e9 fait dans ce sens. N'h\u00e9sitez pas \u00e0 soumettre un PR si vous le souhaitez.

"},{"location":"fr/artisan.html","title":"Commandes artisanales utiles","text":"

Agorakit fournit quelques commandes artisan utiles :

ATTENTION : La plupart de ces commandes sont d\u00e9j\u00e0 utilis\u00e9es par le job cron, elles n'ont donc pas besoin d'\u00eatre appel\u00e9es manuellement. Mais elles peuvent \u00eatre utiles pour le d\u00e9bogage et le d\u00e9veloppement.

"},{"location":"fr/contact.html","title":"How to contact us","text":"

Vous pouvez contacter l'\u00e9quipe d'Agorakit directement sur info [at] agorakit [dot] org.

Vous pouvez \u00e9galement rejoindre le groupe officiel de d\u00e9veloppeurs ici, sur Agorakit bien s\u00fbr : https://app.agorakit.org/groups/39

"},{"location":"fr/contribute.html","title":"Introduction","text":"

Vous souhaitez contribuer \u00e0 agorakit ? Merci d'avance !

"},{"location":"fr/contribute.html#vous-etes-une-personne-de-communication-et-de-soutien","title":"Vous \u00eates une personne de communication et de soutien ?","text":"

Il y a des tonnes de fa\u00e7ons de contribuer, tout est tr\u00e8s appr\u00e9ci\u00e9.

"},{"location":"fr/contribute.html#vous-etes-un-developpeur-maitrisant-laravelphphtmlcssjs","title":"Vous \u00eates un d\u00e9veloppeur ma\u00eetrisant laravel/php/html/css/js ?","text":"

Cr\u00e9ez une branche de la branche principale, travaillez sur votre branche et cr\u00e9ez une demande d'extraction lorsque vous \u00eates pr\u00eat. Voir http://scottchacon.com/2011/08/31/github-flow.html

"},{"location":"fr/contribute.html#soutien-financier","title":"Soutien financier","text":""},{"location":"fr/contribute.html#licence","title":"Licence","text":"

Tout le travail est open source (AGPL) - Votre travail b\u00e9n\u00e9ficiera \u00e0 toute initiative citoyenne int\u00e9ress\u00e9e. Nous avons d\u00e9j\u00e0 des milliers d'utilisateurs qui pourraient b\u00e9n\u00e9ficier de votre aide. Le travail est r\u00e9alis\u00e9 sous licence AGPL. - Cela signifie \u00e9galement que si vous utilisez cette base de code, vous devez contribuer \u00e0 vos modifications.

N'h\u00e9sitez pas \u00e0 envoyer un message \u00e0 info (at) agorakit.org si vous \u00eates int\u00e9ress\u00e9 ou si vous avez des questions.

"},{"location":"fr/development.html","title":"Contribuer \u00e0 Agorakit","text":"

Vous voulez contribuer au projet ? C'est tr\u00e8s bien ! Toute id\u00e9e est la bienvenue.

"},{"location":"fr/development.html#serveur-de-developpement","title":"Serveur de d\u00e9veloppement","text":""},{"location":"fr/development.html#utilisation-de-laravel-sail","title":"Utilisation de Laravel Sail","text":"

Sail est un wrapper docker pour faciliter le d\u00e9veloppement local. C'est un moyen vraiment cool et facile d'avoir un serveur local parfait pour les d\u00e9veloppeurs. Laravel Sail fonctionne d'embl\u00e9e dans ce projet. Lisez la documentation de Sail pour plus d'informations.

C'est ce que j'utilise sur ma station de travail principale (bas\u00e9e sur linux) car c'est tr\u00e8s reproductible.

En gros, sail up va d\u00e9marrer un serveur de d\u00e9veloppement

"},{"location":"fr/development.html#utilisation-de-artisan-serve","title":"Utilisation de artisan serve","text":"

Si vous voulez d\u00e9marrer un serveur local pour le d\u00e9veloppement :

$ php artisan serve\n

L'installation sera disponible pour 127.0.0.1:8000

Il y a beaucoup d'autres options, consultez la documentation et l'\u00e9cosyst\u00e8me de Laravel pour avoir une vue d'ensemble des options pour le d\u00e9veloppement local.

"},{"location":"fr/development.html#creation-de-la-base-de-donnees","title":"Cr\u00e9ation de la base de donn\u00e9es","text":"

Suivez d'abord les instructions d'installation, y compris la cr\u00e9ation d'un \u00e9chantillon de contenu en utilisant :

$ php artisan db:seed\n
"},{"location":"fr/development.html#travailler-sur-le-design-et-les-css","title":"Travailler sur le design et les css","text":"

J'ai supprim\u00e9 toutes les \u00e9tapes de construction, maintenant tout se passe dans un fichier custom.css plat.

Tous les JS et CSS externes sont servis par diff\u00e9rents CDN. A un moment donn\u00e9, les fichiers seront re-servis en local, quand tout sera stabilis\u00e9, et s'il y a de r\u00e9els avantages \u00e0 le faire.

Pas de npm, pas de node, pas de tailwind, pas de purge, pas de minifier, pas de probl\u00e8me :)

"},{"location":"fr/development.html#tester-votre-code","title":"Tester votre code","text":"

Agorakit est test\u00e9 en utilisant le framework de test Laravel.

Pour tester, vous devez avoir une base de donn\u00e9es de test existante. Il suffit de cr\u00e9er une nouvelle base de donn\u00e9es vide, par exemple agorakit_testing et de v\u00e9rifier dans le fichier phpunit.xml que tout correspond.

Avant de commencer le code, vous devriez soit \u00e9crire plus de tests (dans ce cas, vous m\u00e9ritez un cookie). Ou au moins v\u00e9rifier que vous n'avez rien cass\u00e9 en tapant simplement: :

php artisan test\n

...\u00e0 la racine de votre projet.

Aucune erreur ne devrait appara\u00eetre (\u00e0 condition que tout soit correctement configur\u00e9).

Nous utilisons travis ci pour ex\u00e9cuter tous ces tests lors du commit, donc cela sera fait automatiquement pour vous \u00e0 un moment donn\u00e9 :-)

"},{"location":"fr/development.html#ecriture-des-tests","title":"Ecriture des tests","text":"

N'h\u00e9sitez pas \u00e0 \u00e9crire des tests. Nous privil\u00e9gions les t\u00e2ches bien d\u00e9finies qu'un utilisateur final accomplirait r\u00e9ellement, comme l'inscription, la cr\u00e9ation d'un compte, la publication, le t\u00e9l\u00e9chargement, etc... Cela nous a tr\u00e8s bien servi dans le pass\u00e9 pour rep\u00e9rer les erreurs et cela refl\u00e8te vraiment les cas d'utilisation r\u00e9els. Bien que nous soyons ouverts \u00e0 d'autres types de tests...

"},{"location":"fr/documentation.html","title":"Contribuer \u00e0 la documentation","text":"

La documentation est \u00e9crite en markdown et le site web est construit statiquement en utilisant Mkdocs material

NOTE : Nouveaux langages, meilleure formulation, nouvelles sections, plus de visuels, toutes les corrections m\u00eame petites sont les bienvenues !

"},{"location":"fr/documentation.html#comment-contribuer","title":"Comment contribuer ?","text":"

CONSEIL : L'utilisation de [Visual Studio Code] (https://code.visualstudio.com/) pour travailler sur du code et des fichiers markdown est une option raisonnablement simple. Vous disposez en outre d'une interface utilisateur int\u00e9gr\u00e9e pour l'int\u00e9gration de git et de github, ce qui est int\u00e9ressant pour les d\u00e9butants.

"},{"location":"fr/documentation.html#comment-construire-la-documentation","title":"Comment construire la documentation ?","text":"

Installez mkdocs material et quelques plugins.

pip install mkdocs-material\npip install markdown-callouts\npip install mkdocs-static-i18n\n

D\u00e9marrez ensuite le serveur web int\u00e9gr\u00e9 pour pr\u00e9visualiser votre travail sur la documentation.

mkdocs serve\n

La documentation est actuellement servie par des pages github. Le processus de publication est localis\u00e9 ici : https://github.com/agorakit/documentation/actions/workflows/ci.yml

Comment cela fonctionne-t-il ? A chaque fois qu'un commit est fait sur la branche principale ou master, la documentation est construite en utilisant https://github.com/mhausenblas/mkdocs-deploy-gh-pages (c'est une action git qui fait le travail pour nous)

Les fichiers r\u00e9sultants sont plac\u00e9s dans la branche GH du d\u00e9p\u00f4t de documentation qui est ensuite s\u00e9rialis\u00e9e en utilisant la fonctionnalit\u00e9 \"pages\" de github.

C'est un peu difficile \u00e0 configurer mais il semble qu'une fois que c'est fait, \u00e7a fonctionne.

Voir https://squidfunk.github.io/mkdocs-material/getting-started/ pour plus d'informations sur le fonctionnement du constructeur de documentation.

"},{"location":"fr/first_steps.html","title":"Premiers pas apr\u00e8s l'installation","text":"

Si vous venez d'installer Agorakit sur un serveur, prenez le temps de le configurer correctement pour votre cas d'utilisation.

"},{"location":"fr/first_steps.html#texte-dintroduction-sur-la-page-daccueil","title":"Texte d'introduction sur la page d'accueil","text":"

D\u00e9finissez un texte d'introduction sur la page d'accueil pour les nouveaux arrivants : allez sur la page d'administration \u00e0 partir du menu d\u00e9roulant de votre profil d'utilisateur. En utilisant l'\u00e9diteur, vous pouvez ajouter des images externes et tout ce que vous voulez.

"},{"location":"fr/first_steps.html#verifier-tous-les-parametres-dadministration","title":"V\u00e9rifier tous les param\u00e8tres d'administration","text":"

Allez dans le menu d'administration (\u00e0 partir du menu d\u00e9roulant de votre profil d'utilisateur) et v\u00e9rifiez tous les param\u00e8tres qui s'y trouvent. Faites attention aux diff\u00e9rentes permissions et aux types de groupes que vous autorisez sur votre serveur.

"},{"location":"fr/group.html","title":"Cr\u00e9ez et g\u00e9rez vos groupes","text":""},{"location":"fr/group.html#creer-des-groupes","title":"Cr\u00e9er des groupes","text":"

Cr\u00e9ez un ou plusieurs groupes. Un groupe de bienvenue et un groupe de test sont souvent utiles.

Vous pouvez choisir le type de groupe \u00e0 cr\u00e9er

! !! note Les prochaines versions d'Agorakit pourraient inclure un contr\u00f4le plus granulaire des types de groupes et de l'acc\u00e8s aux membres. Votre contribution est pr\u00e9cieuse pour am\u00e9liorer cette partie.

"},{"location":"fr/group.html#parametres-du-groupe","title":"Param\u00e8tres du groupe","text":"

Si vous \u00eates administrateur d'un groupe, vous aurez un onglet \"admin\" sur le(s) groupe(s) que vous g\u00e9rez. Vous pouvez y g\u00e9rer beaucoup de choses dans votre groupe.

"},{"location":"fr/group.html#le-menu-configuration","title":"Le menu \"configuration","text":"

Cet onglet vous permet d'ajouter une description \u00e0 votre groupe, de d\u00e9finir les tags du groupe, de d\u00e9finir un emplacement (adresse) et de d\u00e9finir le type de groupe (voir ci-dessus).

"},{"location":"fr/group.html#le-menu-tags","title":"Le menu \"tags","text":"

Ce menu vous permet de choisir la strat\u00e9gie de marquage que vous souhaitez pour votre groupe :

! !! note Bien que le balisage libre soit agr\u00e9able, il est souvent pr\u00e9f\u00e9rable de se fixer ensemble un ensemble de balises et de s'y tenir dans votre groupe. \"Moins c'est plus\" et \"chacun a une fa\u00e7on diff\u00e9rente d'organiser le contenu, alors tenons-nous en \u00e0 une seule fa\u00e7on de le faire\".

Les administrateurs de groupe peuvent \u00e9galement d\u00e9finir des couleurs pour les balises. Les couleurs sont partag\u00e9es entre les groupes.

"},{"location":"fr/group.html#le-menu-fonctionnalites","title":"Le menu \"fonctionnalit\u00e9s","text":"

Ce menu vous permet d'activer et de d\u00e9sactiver les onglets disponibles dans votre groupe. Vous pouvez ainsi activer ou d\u00e9sactiver :

Vous avez \u00e9galement la possibilit\u00e9 d'ajouter un onglet personnalis\u00e9 \u00e0 votre groupe, avec une ic\u00f4ne et un code HTML personnalis\u00e9s. Utilisez-le pour inclure du contenu suppl\u00e9mentaire qui doit \u00eatre partag\u00e9 par tous les membres du groupe.

"},{"location":"fr/group.html#le-menu-permissions","title":"Le menu \"permissions","text":"

Ce menu vous permet de choisir ce que les membres peuvent faire ou ne pas faire dans votre groupe. C'est assez explicite, il suffit de cocher les permissions que vous souhaitez accorder aux membres r\u00e9guliers de votre groupe. Par d\u00e9faut, les membres ont toutes les permissions.

"},{"location":"fr/group.html#le-menu-insights","title":"Le menu \"insights","text":"

Ce menu vous montre des statistiques int\u00e9ressantes sur vos groupes ainsi que de jolis graphiques.

"},{"location":"fr/group.html#inviter-des-personnes","title":"Inviter des personnes","text":"

Invitez des personnes \u00e0 un ou plusieurs groupes en utilisant la fonction d'invitation de chaque groupe. Vous pouvez \u00e9galement ajouter des personnes directement si elles sont d\u00e9j\u00e0 inscrites sur votre installation. Ceci est particuli\u00e8rement utile si les gens ont du mal \u00e0 confirmer leur adresse email et leur appartenance \u00e0 un groupe (croyez-moi, cela arrive).

"},{"location":"fr/group.html#adhesions","title":"Adh\u00e9sions","text":"

Sur cette page, vous pouvez voir et exporter la liste des membres de votre groupe. Vous pouvez \u00e9galement v\u00e9rifier si tout le monde a accept\u00e9 une invitation \u00e0 rejoindre un groupe.

REMARQUE : le champ \"Derni\u00e8re activit\u00e9\" indique la derni\u00e8re fois que quelqu'un a \u00e9crit quelque chose et non la derni\u00e8re fois que quelqu'un s'est connect\u00e9 au syst\u00e8me. Cela peut induire en erreur.

"},{"location":"fr/install.html","title":"Installation","text":"

NOTE : Essayer Agorakit sans l'installer Si vous souhaitez simplement essayer Agorakit, vous pouvez le faire sans avoir \u00e0 l'installer. Il suffit de cr\u00e9er un compte sur https://app.agorakit.org, une instance d'Agorakit pour les citoyens-activistes et \u00e0 des fins d'\u00e9valuation.

Vous pouvez \u00e9galement contacter le d\u00e9veloppeur si vous \u00eates int\u00e9ress\u00e9 par l'h\u00e9bergement g\u00e9r\u00e9 d'une instance priv\u00e9e d'Agorakit. Contactez info [at] agorakit.org pour plus de d\u00e9tails.\n\nContinuez \u00e0 lire si vous souhaitez installer une instance d'Agorakit sur votre propre serveur.\n
"},{"location":"fr/install.html#exigences","title":"Exigences","text":"

Vous avez besoin d'un bon fournisseur d'h\u00e9bergement web qui fournit les \u00e9l\u00e9ments suivants :

NOTE : Toutes ces fonctionnalit\u00e9s r\u00e9unies sont difficiles \u00e0 trouver, c'est pourquoi les gens sont oblig\u00e9s d'utiliser un VPS et de tout configurer eux-m\u00eames. C'est une proposition plus risqu\u00e9e si vous ne savez pas comment cela fonctionne. Nous avons eu beaucoup de succ\u00e8s avec l'h\u00e9bergement partag\u00e9 [Alwaysdata] (https://www.alwaysdata.com). Ils h\u00e9bergent d'ailleurs \u00e0 un tarif r\u00e9duit l'instance gratuite d'Agorakit.

"},{"location":"fr/install.html#installer","title":"Installer","text":"

Actuellement, vous devez savoir comment installer une application Laravel en utilisant la ligne de commande. Ceci est parfaitement standard et document\u00e9 ici : https://laravel.com/docs/master/installation.

"},{"location":"fr/install.html#cloner-le-depot","title":"Cloner le d\u00e9p\u00f4t","text":"
git clone https://github.com/agorakit/agorakit\n

Cela cr\u00e9era un r\u00e9pertoire agorakit dans le chemin courant.

"},{"location":"fr/install.html#creer-le-fichier-env","title":"Cr\u00e9er le fichier .env","text":"

Tous les param\u00e8tres sont stock\u00e9s dans un fichier .env. Ce fichier n'est pas fourni dans le d\u00e9p\u00f4t Git, parce qu'il est sp\u00e9cifique \u00e0 votre installation, et parce que vous ne voulez pas que votre configuration soit \u00e9cras\u00e9e lors d'une mise \u00e0 jour :-)

Cr\u00e9ez et \u00e9ditez le fichier de configuration \u00e0 partir du fichier d'exemple fourni :

cp .env.example .env\nnano .env\n

Nano est un simple \u00e9diteur de texte disponible sur la plupart des serveurs. N'h\u00e9sitez pas \u00e0 utiliser autre chose pour \u00e9diter votre fichier .env.

"},{"location":"fr/install.html#configurer-les-informations-didentification-de-la-base-de-donnees","title":"Configurer les informations d'identification de la base de donn\u00e9es","text":"

NOTE : Vous devez au moins d\u00e9finir les identifiants de votre base de donn\u00e9es et le nom de votre site. V\u00e9rifiez que votre base de donn\u00e9es existe et qu'elle est accessible avec ces identifiants.

APP_ENV=local // local ou production\nAPP_DEBUG=true // affiche ou non la barre de d\u00e9bogage et les erreurs \u00e9tendues\nAPP_KEY=SomeRandomString // sera g\u00e9n\u00e9r\u00e9 automatiquement\nAPP_NAME='Agorakit' // nom de votre application\nAPP_URL=http://locahost // url de base\nAPP_LOG=daily // rotation du journal\nAPP_DEFAULT_LOCALE=en // locale par d\u00e9faut si elle n'est pas d\u00e9tect\u00e9e par le navigateur de l'utilisateur\n\nDB_HOST=localhost // h\u00f4te de votre serveur mysql\nDB_DATABASE=agorakit // nom de votre base de donn\u00e9es SQL\nDB_USERNAME=root // login de mysql\nDB_PASSWORD= // mot de passe de mysql\n\nCACHE_DRIVER=file // driver \u00e0 utiliser pour la mise en cache\nSESSION_DRIVER=file // pilote \u00e0 utiliser pour stocker les sessions\nQUEUE_DRIVER=sync // pilote \u00e0 utiliser pour les files d'attente\n
"},{"location":"fr/install.html#configurer-lenvoi-demails","title":"Configurer l'envoi d'emails","text":"

Vous pouvez maintenant configurer votre serveur de messagerie. Pour le pilote de messagerie, vous pouvez utiliser mail pour utiliser la fonction de messagerie int\u00e9gr\u00e9e de php ou smtp pour utiliser n'importe quel serveur smtp. Choisissez le bon port (sur la plupart des serveurs, il s'agit de 25), l'h\u00f4te et le nom d'utilisateur / mot de passe.

MAIL_DRIVER=mail // pilote \u00e0 utiliser pour envoyer des emails. Utilisez mail pour utiliser la fonction mail int\u00e9gr\u00e9e de php\nMAIL_HOST=mailtrap.io // nom d'h\u00f4te si vous utilisez smtp pour envoyer des mails\nMAIL_PORT=2525 // port si vous utilisez smtp pour envoyer des mails\nMAIL_USERNAME=null // login si vous utilisez smtp pour envoyer des mails\nMAIL_PASSWORD=null // mot de passe si vous utilisez smtp pour envoyer des mails\nMAIL_ENCRYPTION=null // cryptage si vous utilisez smtp pour envoyer des mails\n\nMAIL_FROM=admin@localhost // adresse email utilis\u00e9e pour l'envoi d'emails d'administration\nMAIL_FROM_NAME=Agorakit // nom de l'exp\u00e9diteur des emails d'administration\nMAIL_NOREPLY=noreply@localhost // pas d'adresse de r\u00e9ponse pour les messages de service\n\nMAPBOX_TOKEN=null // Cr\u00e9er un compte Mapbox et g\u00e9n\u00e9rer un jeton pour permettre la g\u00e9olocalisation et l'affichage des cartes.\n

ASTUCE : Vous devez disposer d'un serveur de courrier \u00e9lectronique op\u00e9rationnel pour pouvoir v\u00e9rifier tout compte utilisateur enregistr\u00e9. Si vous ne pouvez pas v\u00e9rifier votre compte utilisateur, vous pouvez toujours mettre la colonne verified \u00e0 1 dans la table users.

"},{"location":"fr/install.html#installer-les-paquets","title":"Installer les paquets","text":"

T\u00e9l\u00e9chargez tous les paquets n\u00e9cessaires :

composer install\n
"},{"location":"fr/install.html#generer-une-cle","title":"G\u00e9n\u00e9rer une cl\u00e9","text":"
php artisan key:generate\n

Cette \u00e9tape est tr\u00e8s importante car la cl\u00e9 est utilis\u00e9e pour g\u00e9n\u00e9rer diff\u00e9rents tokens et sessions.

"},{"location":"fr/install.html#creer-les-tables-dans-la-base-de-donnees","title":"Cr\u00e9er les tables dans la base de donn\u00e9es","text":"

Migrer (cr\u00e9er toutes les tables dans) la base de donn\u00e9es :

php artisan migrate\n
"},{"location":"fr/install.html#stockage-des-fichiers-de-liens","title":"Stockage des fichiers de liens","text":"

Lier le dossier public de stockage au dossier public visible par l'utilisateur :

php artisan storage:link\n
"},{"location":"fr/install.html#creer-un-contenu-factice","title":"Cr\u00e9er un contenu factice","text":"

(Facultatif) Cr\u00e9er un exemple de contenu dans la base de donn\u00e9es :

php artisan db:seed\n

! !! avertissement Ne faites pas cette derni\u00e8re \u00e9tape pour une installation en production car elle cr\u00e9era un utilisateur admin avec un mot de passe par d\u00e9faut et des groupes et contenus factices.

"},{"location":"fr/install.html#configurez-votre-serveur-web","title":"Configurez votre serveur web","text":"

Vous pouvez maintenant configurer votre serveur web pour qu'il serve le r\u00e9pertoire /public. Ceci est tr\u00e8s important, car vous ne voulez pas exposer le reste des r\u00e9pertoires (par exemple, vous ne voulez PAS exposer votre fichier .env !).

"},{"location":"fr/install.html#configurer-un-job-cron","title":"Configurer un job cron","text":"

Une t\u00e2che cron est une t\u00e2che que votre serveur ex\u00e9cute \u00e0 des intervalles sp\u00e9cifiques pour ex\u00e9cuter des choses en arri\u00e8re-plan.

Agorakit a besoin d'effectuer p\u00e9riodiquement certaines t\u00e2ches, comme l'envoi de r\u00e9sum\u00e9s par email, le nettoyage de la base de donn\u00e9es, la suppression d'anciennes versions du contenu, la suppression d'anciens fichiers, etc...

Le script php artisan schedule:run doit \u00eatre ex\u00e9cut\u00e9 au moins toutes les 5 minutes en utilisant une t\u00e2che cron.

Suivez la documentation de Laravel cron ici : https://laravel.com/docs/master/scheduling

NOTE : Sans job cron, votre application n'enverra PAS de r\u00e9sum\u00e9s, ne nettoiera pas la base de donn\u00e9es, ne rappellera pas aux utilisateurs les \u00e9v\u00e9nements \u00e0 venir, etc. Les jobs cron sont n\u00e9cessaires pour une exploitation correcte.

"},{"location":"fr/sign_up.html","title":"Signing up","text":"

Pour utiliser Agorakit, il suffit de se connecter au serveur Agorakit que vous utilisez.

Il peut s'agir de l'instance partag\u00e9e sur https://app.agorakit.org (instance \"name your price\" disponible pour vos tests et pour les collectifs), ou d'un serveur que vous avez install\u00e9 ou que quelqu'un g\u00e8re pour vous.

"},{"location":"fr/sign_up.html#enregistrer-un-nouvel-utilisateur","title":"Enregistrer un nouvel utilisateur","text":"

Sur la plupart des serveurs, vous pouvez librement cr\u00e9er un nouveau compte utilisateur. Si vous ne pouvez pas cr\u00e9er de compte sur un serveur particulier, cela signifie que l'enregistrement a \u00e9t\u00e9 d\u00e9sactiv\u00e9. Dans ce cas, vous devez recevoir une invitation de l'administrateur du serveur pour rejoindre le serveur.

"},{"location":"fr/sign_up.html#le-cas-particulier-du-premier-compte-dutilisateur","title":"Le cas particulier du premier compte d'utilisateur","text":"

Si vous cr\u00e9ez un compte utilisateur sur un nouveau serveur (sans utilisateur existant), vous serez l'administrateur du serveur (super utilisateur) sur ce serveur.

NOTE : L'envoi d'email doit fonctionner pour que votre compte puisse \u00eatre valid\u00e9.

"},{"location":"fr/upgrade.html","title":"Mise \u00e0 jour d'Agorakit","text":"

Il est important de maintenir une installation d'Agorakit \u00e0 jour. Le processus est s\u00fbr

Nous essayons de garder la branche master toujours dans un bon \u00e9tat de fonctionnement (c'est ce qu'on appelle un mod\u00e8le de \"rolling release\").

Cela signifie que les tests sont r\u00e9ussis et que vous obtenez les derni\u00e8res fonctionnalit\u00e9s directement \u00e0 partir de la branche master.

ATTENTION : Faites une sauvegarde de votre base de donn\u00e9es SQL au cas o\u00f9 quelque chose tournerait mal. Faites \u00e9galement une sauvegarde de tous vos fichiers. Faites m\u00eame deux sauvegardes et stockez-les sur un serveur s\u00e9par\u00e9.

INFO : Vous pouvez choisir entre une proc\u00e9dure de mise \u00e0 jour automatis\u00e9e \u00e0 partir de la ligne de commande, ou une proc\u00e9dure de mise \u00e0 jour manuelle \u00e9tape par \u00e9tape.

"},{"location":"fr/upgrade.html#option-1-utilisation-du-script-de-mise-a-jour","title":"Option 1 : Utilisation du script de mise \u00e0 jour","text":"

Il existe un script d'aide qui effectue la mise \u00e0 jour pour vous :

./update\n

! !! avertissement Attention, le script migrera votre base de donn\u00e9es sans vous demander confirmation. Faites toujours une sauvegarde de la base de donn\u00e9es au cas o\u00f9 quelque chose se passerait mal.

"},{"location":"fr/upgrade.html#option-2-proceder-a-la-mise-a-jour-manuellement","title":"Option 2 : Proc\u00e9der \u00e0 la mise \u00e0 jour manuellement","text":"

Vous pouvez \u00e0 tout moment proc\u00e9der \u00e0 la mise \u00e0 jour de votre installation :

php artisan down\ngit pull\ncomposer install\nphp artisan migrate\nphp artisan up\n
"},{"location":"fr/upgrade.html#si-quelque-chose-ne-va-pas","title":"Si quelque chose ne va pas","text":"

Restaurez la sauvegarde de votre base de donn\u00e9es et faites un git checkout d'une version pr\u00e9c\u00e9dente (fonctionnelle). Puis r\u00e9ex\u00e9cutez composer install.

Contactez-nous si une mise \u00e0 jour \u00e9choue (cela n'est jamais arriv\u00e9, donc ce genre d'\u00e9chec est une information tr\u00e8s int\u00e9ressante pour le projet).

"},{"location":"fr/upgrade.html#instructions-specifiques-a-la-version","title":"Instructions sp\u00e9cifiques \u00e0 la version","text":""},{"location":"fr/upgrade.html#mise-a-jour-vers-la-version-15","title":"Mise \u00e0 jour vers la version 1.5","text":"

Apr\u00e8s la mise \u00e0 jour normale, il se peut que vous obteniez une erreur mentionnant la duplication de la cl\u00e9 du nom d'utilisateur dans la table des utilisateurs.

Ex\u00e9cutez php artisan agorakit:enforceuniqueusernames pour corriger le probl\u00e8me. Puis r\u00e9ex\u00e9cutez le script de mise \u00e0 jour.

Ceci n'arrive que sur les grosses installations et peut \u00eatre ex\u00e9cut\u00e9 plusieurs fois sans probl\u00e8me. C'est une solution \u00e0 l'\u00e9preuve du temps pour ce probl\u00e8me.

! !! note La plupart des mises \u00e0 jour ponctuelles comme celle mentionn\u00e9e ci-dessus sont maintenant effectu\u00e9es dans le cadre de migrations afin de r\u00e9duire la quantit\u00e9 de documentation que vous devez lire pour mettre \u00e0 jour correctement votre installation. Asseyez-vous, d\u00e9tendez-vous et appr\u00e9ciez l'automatisation au travail :-)

"},{"location":"fr/usage.html","title":"Utilisation d'Agorakit","text":""},{"location":"fr/usage.html#demarrer-les-discussions","title":"D\u00e9marrer les discussions","text":"

Chaque groupe permet de cr\u00e9er des discussions. Dans les discussions et les commentaires, vous pouvez utiliser une syntaxe sp\u00e9ciale pour faire r\u00e9f\u00e9rence \u00e0 des fichiers et des discussions existants, et mentionner des utilisateurs.

Vous pouvez \u00e9galement joindre directement un fichier \u00e0 une discussion. Utilisez le bouton \"Parcourir...\" situ\u00e9 sous le formulaire de discussion pour t\u00e9l\u00e9charger un fichier depuis votre ordinateur, le joindre au groupe et le mentionner dans la discussion en une seule fois.

"},{"location":"fr/usage.html#programmer-des-evenements","title":"Programmer des \u00e9v\u00e9nements","text":"

Chaque groupe dispose d'un calendrier dans lequel vous pouvez ajouter des actions/\u00e9v\u00e9nements. Il vous suffit de d\u00e9finir une date et une heure de d\u00e9but, ainsi qu'une dur\u00e9e facultative. Si aucune dur\u00e9e n'est d\u00e9finie, elle est suppos\u00e9e \u00eatre d'une heure.

"},{"location":"fr/usage.html#telecharger-des-fichiers-et-partager-des-liens","title":"T\u00e9l\u00e9charger des fichiers et partager des liens","text":"

Vous pouvez ajouter des fichiers aux groupes directement dans l'onglet des fichiers. Il suffit de t\u00e9l\u00e9charger un ou plusieurs fichiers et d'ajouter quelques balises pour les organiser. Comme expliqu\u00e9 ci-dessus, vous pouvez \u00e9galement joindre directement des fichiers aux commentaires et aux discussions.

"},{"location":"fr/usage.html#categoriser-le-contenu-a-laide-de-balises","title":"Cat\u00e9goriser le contenu \u00e0 l'aide de balises","text":"

Les tags (ou \u00e9tiquettes) sont tr\u00e8s importants pour organiser votre contenu. Vous pouvez \u00e9tiqueter n'importe quoi dans Agorakit (fichiers, utilisateurs, discussions, groupes, actions). Les administrateurs de groupes peuvent choisir d'utiliser des tags libres (n'importe qui peut choisir n'importe quel tag) ou restreindre les tags que vous pouvez utiliser dans chaque groupe (plus comme les labels github par exemple).

Une fois que le contenu est \u00e9tiquet\u00e9, il peut \u00eatre trouv\u00e9 comme une simple page d'aper\u00e7u, montrant tous les tags et montrant tous les contenus attach\u00e9s \u00e0 un tag particulier. C'est tr\u00e8s pratique pour avoir une vue d'ensemble de vos groupes.

"},{"location":"fr/usage.html#derniere-etape-le-profit","title":"Derni\u00e8re \u00e9tape : le profit !","text":"

(ou dans certains cas, r\u00e9volution !)

"},{"location":"fr/delete_content.html","title":"Suppression de contenu","text":"

La suppression de contenu sur Agorakit respecte une proc\u00e9dure qui permet de r\u00e9pondre \u00e0 diff\u00e9rents imp\u00e9ratifs:

Quand un contenu est effac\u00e9, celui-ci est marqu\u00e9 comme effac\u00e9 dans la base de donn\u00e9e et n'apparait plus. Un administrateur d'instance peut remettre en ligne un contenu effac\u00e9 en se rendant dans le menu \"admin > r\u00e9cup\u00e9rer du contenu\".

Le contenu marqu\u00e9 comme effac\u00e9 est d\u00e9finitivement effac\u00e9 (physiquement) de la base de donn\u00e9e apr\u00e8s 30 jours. Il n'est plus possible apr\u00e8s ce d\u00e9lai de r\u00e9cup\u00e9rer le contenu.

"},{"location":"fr/delete_content.html#suppression-de-compte-utilisateur","title":"Suppression de compte utilisateur","text":"

Si un utilisateur d\u00e9cide d'effacer son compte, il peut au choix :

Les discussions qui ont des commentaires sont dans tous les cas assign\u00e9es \u00e0 l'utilisateur anonyme afin de ne pas perdre les contributions des autres utilisateurs. Il n'est pas possible d'effacer individuellement une discussion sous laquelle il y a des commentaires.

Un utilisateur qui est le seul administrateur d'un groupe ne peux pas quitter le groupe.

"},{"location":"fr/delete_content.html#restauration-dun-element-efface","title":"Restauration d'un \u00e9l\u00e9ment effac\u00e9","text":"

Un administrateur d'instance peut restaurer tout contenu effac\u00e9 pendant la p\u00e9riode de r\u00e9tention (30 jours par d\u00e9faut). Il suffit de se rendre dans Admin > settings > recover content et de choisir le ou les \u00e9l\u00e9ments \u00e0 restaurer.

"},{"location":"fr/delete_content.html#nettoyage-de-la-base-de-donnee","title":"Nettoyage de la base de donn\u00e9e","text":"

Si Agorakit est install\u00e9 correctement (avec les t\u00e2ches \"cron\" r\u00e9curentes), la base de donn\u00e9e va \u00eatre automatiquement nettoy\u00e9e afin d'\u00eatre en conformit\u00e9 avec ce qui est indiqu\u00e9 ci-dessus. Le nombre de jours de r\u00e9tention des informations avant suppression d\u00e9finitive est configurable et fix\u00e9 par d\u00e9faut \u00e0 30.

"},{"location":"fr/discussions.html","title":"Cr\u00e9er des discussions","text":"

Choisissez un groupe et depuis l'onglet \"Discussions\" vous pouvez \"Cr\u00e9er une discussion\". Mentionnez un titre et un texte au minimum. Vous pouvez aussi ajouter des mots cl\u00e9 ou tags afin de mieux classer les discussions et aider les autres \u00e0 s'y retrouver.

"},{"location":"fr/discussions.html#joindre-un-fichier","title":"Joindre un fichier","text":"

Dans l'\u00e9diteur de texte, vous pouvez joindre un fichier en le faisant glisser dessus ou en cliquant sur le bouton \"image\" qui permet non seulement d'ins\u00e9rer une image mais \u00e9galement tout type de fichier. Lors d'un \"drag and drop\" (gliss\u00e9 d\u00e9pos\u00e9 de fichier), le syst\u00e8me envoit automatiquement votre fichier et ins\u00e8re l\u00e0 o\u00f9 se trouve votre curseur une r\u00e9f\u00e9rence \u00e0 ce fichier sous la forme d'un f:xx (xx \u00e9tant la r\u00e9f\u00e9rence de votre fichier). Lors de l'affichage de votre discussion ou de votre commentaire, un apper\u00e7u du fichier sera automatiquement g\u00e9n\u00e9r\u00e9.

Le fichier apparait \u00e9galement dans l'onbglet \"fichiers\" de votre groupe.

"},{"location":"fr/discussions.html#mentionner-une-autre-personne","title":"Mentionner une autre personne","text":"

Dans l'\u00e9diteur de texte, tapez simplement un @ , une liste des membres du groupe apparait et vous permet de mentionner une ou plusieurs personnes. Celles-ci recevront un mail instantan\u00e9ment avec votre commentaire. C'est pratique quand vous souhaitez avoir une r\u00e9ponse rapide \u00e0 votre question.

"},{"location":"fr/discussions.html#effacer-un-commentaire-ou-une-discussion","title":"Effacer un commentaire ou une discussion","text":"

Cliquez simplement sur les troios petits points \u00e0 droite de la discussion ou du commentaire en question : (...) et choisissez l'option \"Effacer\". L'auteur.e d'un message peut toujours l'effacer. Un.e admin de groupe peux tout effacer.

Warning

Le fait d'effacer une discussion n'efface pas les fichiers joints \u00e0 cette discussion.

"},{"location":"fr/groups_types.html","title":"Les diff\u00e9rents types de groupes disponible dans Agorakit","text":"

En fonction du type de communaut\u00e9 que vous souhaitez cr\u00e9er, vous avez \u00e0 votre disposition diff\u00e9rents types de groupes.

"},{"location":"fr/groups_types.html#les-groupes-publics","title":"Les groupes publics","text":"

Ces groupes sont ouverts \u00e0 tout le monde, et leur contenu est public. N'importe qui peut se cr\u00e9er un compte sur l'instance et rejoindre un groupe public. Une petite ic\u00f4ne de plan\u00e8te est affich\u00e9e \u00e0 c\u00f4t\u00e9 du nom.

"},{"location":"fr/groups_types.html#les-groupes-prives","title":"Les groupes priv\u00e9s","text":"

Ces groupes sont sur invitation uniquement et leur contenu n'est pas public. Seul est visible la pag de pr\u00e9sentation du groupe (comprenant la photo du groupe et le texte de description). Si le groupe autorise les utilisateurs \u00e0 candidater, un onglet permet de le faire. Une petite ic\u00f4ne de cadenas est affich\u00e9e \u00e0 c\u00f4t\u00e9 du nom.

"},{"location":"fr/groups_types.html#les-groupes-secrets","title":"Les groupes secrets","text":"

Ces groupes sont totalement invisibles pour celles et ceux qui n'en connaissent pas l'existence. Si vous n'\u00eates pas invit\u00e9 \u00e0 un tel groupe vous n'y avez pas acc\u00e8s. Une petite ic\u00f4ne d'oeuil barr\u00e9 est affich\u00e9e \u00e0 c\u00f4t\u00e9 du nom.

"},{"location":"fr/login.html","title":"Acc\u00e9der \u00e0 Agorakit","text":"

Vous devez d'abord d\u00e9terminer si vous utilisez l'agora partag\u00e9e sur https://app.agorakit.org ou si vous utilisez l'agora de votre organisme. Dans le premier cas, allez simplement sur https://app.agorakit.org, dans le second cas, vous aurez re\u00e7u un lien pour vous connecter.

"},{"location":"fr/login.html#se-creer-un-compte","title":"Se cr\u00e9er un compte","text":"

La cr\u00e9ation de compte est tr\u00e8s facile, vous devez simplement cliquer sur \"S'enregistrer\", mentionner votre nom et votre adresse mail. Vous recevrez directement un lien pour vous connecter dans votre boite mail. V\u00e9rifiez le dossier spam si vous navez rien re\u00e7u apr\u00e8s quelques minutes.

"},{"location":"fr/login.html#se-connecter","title":"Se connecter","text":"

Cliquer sur le bouton connexion, entrez votre nom d'utilisateur.trice ou votre mail et votre mot de passe. Si vous avez oubli\u00e9 votre mot de passe, laissez la case 'mot de passe' vide, le syst\u00e8me vous enverra un lien de connexion par mail.

"},{"location":"fr/tags.html","title":"Les tags, qu'est-ce que c'est et \u00e0 quoi \u00e7a sert?","text":"

Le classement du contenu est une science. On l'appelle la taxonomie. C'est aussi parfois l'enfer, surtout quand on travaille \u00e0 plusieurs sur des fichiers.

O\u00f9 se trouve le dernier PV? Dans /premier-trimestre/r\u00e9unions/2021 ou dans /2021/premier-trimestre/pv ? ou encore dans admin/pv/2021 ?

Ce type de question arrive fr\u00e9quemment quand un groupe de personne classe diff\u00e9rents documents dans une structure hi\u00e9rarchique de dossiers. Chacun ayant sa logique de classement, les documents sont vites \u00e9parpill\u00e9s et il devient tr\u00e8s difficile de les retrouver.

La solution propos\u00e9e par Agorakit est d'utiliser les tags (ou mots cl\u00e9s) pour classer le contenu. Ceux-ci consistent en de simples mots cl\u00e9s que l'on peut appliquer au contenu. L'avantage est que l'on peut inventer un vocabulaire simple, \u00e9ventuellement limit\u00e9 \u00e0 quelques mots cl\u00e9s, et sans hi\u00e9rarchie qui d\u00e9pendrait trop de la logique de classement de chacun.

Info

Ainsi, un PV dat\u00e9 de 2021 sera simplement tagg\u00e9 PVet 2021 et sera tr\u00e8s facile \u00e0 retrouver ult\u00e9rieurement.

Les tags peuvent \u00eatre appliqu\u00e9s \u00e0 des personnes, \u00e0 des groupes, des discussions, des \u00e9v\u00e9nements et des fichiers.

Le fait de cliquer sur un tag vous permet de voir tous les autres \u00e9l\u00e9ments tagg\u00e9s de la m\u00eame fa\u00e7on.

Info

Celles et ceux qui le souhaitent peuvent n\u00e9anmoins classer les fichiers par dossier. Une combinaison des deux syst\u00e8mes est \u00e9galement envisageable. A vous de voir ce qui marche le mieux pour votre groupe.

"},{"location":"fr/tags.html#limiter-les-tags-utilisables","title":"Limiter les tags utilisables","text":"

Mais les tags ne r\u00e8glent pas tout. Si votre groupe est de taille importante ou que vous avez beaucoup de contenu, il est possible qu'un moment vous vous retrouviez avec trop de tags diff\u00e9rents et non normalis\u00e9s.

Dans ce cas, mieux vaut confier r\u00e9fl\u00e9chir un instant aux tags r\u00e9ellement n\u00e9cessaire et \u00e0 limiter les tags disponibles dans votre groupe. Vous pouvez tr\u00e8s facilement le faire en allant dans les r\u00e9glages de votre groupe (G\u00e9rer > Tags).

Idem pour les utilisateurs et les groupes, afin d'uniformiser les profils des personnes et surtout de permettre \u00e0 chacun de retrouer quelqu'un en fonction de mots cl\u00e9s communs \u00e0 tous, vous pouvez limiter les tags utilisables dans les profils utilisateurs dans le menu Admin > Settings.

"},{"location":"fr/users_types.html","title":"Types d'utilisateurs","text":"

Agorakit dispose de diff\u00e9rents types d'utilisateurs. Les voici par ordre de permissions, des plus \u00e9tendues aux plus restreintes :

"},{"location":"fr/users_types.html#administrateurtrice-dinstance","title":"Administrateur.trice d'instance","text":"

Il s'agit d'une personne qui dispose de tous les droits d'acc\u00e8s \u00e0 une instance (installation) d'Agorakit. Cette personne peut tout faire : - acc\u00e9der \u00e0 tous les groupes y compris les groupes secrets - modifier les r\u00e9glages de l'installation - modifier et effacer n'importe quel contenu

"},{"location":"fr/users_types.html#administrateurtrice-de-groupe","title":"Administrateur.trice de groupe","text":"

Toute personne cr\u00e9ant un groupe devient automatiquement administrateur de ce groupe. Cela permet de : - modifier les r\u00e9glages du groupe y compris les permissions des membres - acc\u00e9der \u00e0 la liste compl\u00e8te des participants y compris leur adresse mail - promouvoir n'importe quel membre au statut d'admin - changer le statut de n'importe quel membre y compris le sortir du groupe - modifier et effacer n'importe quel contenu du groupe

"},{"location":"fr/users_types.html#membre-dun-groupe","title":"Membre d'un groupe","text":"

Toute personne membre d'un groupe dispose au minimum de la permission de voir l'ensemble du contenu du groupe. Elle peut en plus, en fonction des permissions d\u00e9finies pour le groupe en question : - cr\u00e9er des discussions - cr\u00e9er des \u00e9v\u00e9nements \u00e0 l'agenda - ajouter des fichiers - inviter de nouveaux participants

"},{"location":"fr/users_types.html#membre-invite","title":"Membre invit\u00e9","text":"

Dans le cas d'un groupe ferm\u00e9 : quand un utilisateur a \u00e9t\u00e9 invit\u00e9 par mail \u00e0 rejoindre un groupe, il re\u00e7oit le status d'invit\u00e9. D\u00e8s qu'il confirme la demande, il devient membre effectif du groupe.

"},{"location":"fr/users_types.html#candidat-dun-groupe","title":"Candidat d'un groupe","text":"

Quand une personne demande \u00e0 rejoindre un groupe ferm\u00e9, elle a le statut de candidat. Un des administrateurs du groupe doit accepter ou refuser sa candidature.

"},{"location":"fr/users_types.html#desenregistre-supprime","title":"D\u00e9senregistr\u00e9 / supprim\u00e9","text":"

Ce statut est attribu\u00e9 aux personnes qui ont supprim\u00e9 leur compte de l'instance Agorakit.

"},{"location":"fr/users_types.html#a-refuse","title":"A refus\u00e9","text":"

Ce statut est attribu\u00e9 aux personnes qui ont refus\u00e9 une invitation \u00e0 rejoindre le groupe. Il est fortement conseill\u00e9 de ne pas les recontacter \u00e0 propos du groupe, selon leur souhait, sauf bien entendu si il s'agit d'une fausse manoeuvre de leur part :-)

"},{"location":"fr/users_types.html#blackliste","title":"Blacklist\u00e9","text":"

Ce statut est attribu\u00e9 \u00e0 une personne qui ne peut plus rejoindre le groupe.

"}]} \ No newline at end of file diff --git a/sign_up.html b/sign_up.html new file mode 100644 index 0000000..fe68134 --- /dev/null +++ b/sign_up.html @@ -0,0 +1,1045 @@ + + + + + + + + + + + + + + + + + + + + + + + Signing up - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Signing up

+ +

To use Agorakit, simply connect to the Agorakit server you are using.

+

This can be either the shared instance at https://app.agorakit.org ("name your price" instance available for your tests and for collectives), or a server you have installed or someone manages for you.

+

Registering a new user

+

On most servers, you can freely create a new user account. If you cannot create an account on a particular server it means registration has been disabled. In this case you need an invitation from the server admin to join the server.

+

The special case of the first user account

+

If you register a user account on a new server (one without any existing user), you will be the server admin (super user) on this server.

+
+

Note

+

You need to have email sending working in order to validate your account.

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..5a38f32 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,221 @@ + + + + Noneindex.html + 2024-08-08 + daily + + + + + Noneadvanced_config.html + 2024-08-08 + daily + + + + + Noneartisan.html + 2024-08-08 + daily + + + + + Nonecontact.html + 2024-08-08 + daily + + + + + Nonecontribute.html + 2024-08-08 + daily + + + + + Nonedevelopment.html + 2024-08-08 + daily + + + + + Nonedocumentation.html + 2024-08-08 + daily + + + + + Nonefirst_steps.html + 2024-08-08 + daily + + + + + Nonegroup.html + 2024-08-08 + daily + + + + + Noneinstall.html + 2024-08-08 + daily + + + + + Nonesign_up.html + 2024-08-08 + daily + + + + + Noneupgrade.html + 2024-08-08 + daily + + + + + Noneusage.html + 2024-08-08 + daily + + + + + Nonefr/index.html + 2024-08-08 + daily + + + + + Nonefr/advanced_config.html + 2024-08-08 + daily + + + + + Nonefr/artisan.html + 2024-08-08 + daily + + + + + Nonefr/contact.html + 2024-08-08 + daily + + + + + Nonefr/contribute.html + 2024-08-08 + daily + + + + + Nonefr/development.html + 2024-08-08 + daily + + + + + Nonefr/documentation.html + 2024-08-08 + daily + + + + + Nonefr/first_steps.html + 2024-08-08 + daily + + + + + Nonefr/group.html + 2024-08-08 + daily + + + + + Nonefr/install.html + 2024-08-08 + daily + + + + + Nonefr/sign_up.html + 2024-08-08 + daily + + + + + Nonefr/upgrade.html + 2024-08-08 + daily + + + + + Nonefr/usage.html + 2024-08-08 + daily + + + + + Nonefr/delete_content.html + 2024-08-08 + daily + + + + Nonefr/discussions.html + 2024-08-08 + daily + + + + Nonefr/groups_types.html + 2024-08-08 + daily + + + + Nonefr/login.html + 2024-08-08 + daily + + + + Nonefr/tags.html + 2024-08-08 + daily + + + + Nonefr/users_types.html + 2024-08-08 + daily + + + \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz new file mode 100644 index 0000000..f7662aa Binary files /dev/null and b/sitemap.xml.gz differ diff --git a/upgrade.html b/upgrade.html new file mode 100644 index 0000000..862a76f --- /dev/null +++ b/upgrade.html @@ -0,0 +1,1080 @@ + + + + + + + + + + + + + + + + + + + + + + + Upgrading - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + + + +
+
+
+ + + +
+
+ + + + + + + +

Upgrade Agorakit

+

It is important to keep an up to date installation of Agorakit. The process is safe

+

We try to keep the master branch always in a good, safe, and working condition (this is called a "rolling release" model).

+

That means that tests passes and that you get the latest features directly from the master branch.

+
+

Warning

+

Make a backup of your SQL database in case something goes wrong. Make a backup of all your files as well. Make two backups even, and store them on a separate server.

+
+
+

Info

+

You can choose between an automated update procedure from the command line, or a step by step to update manually.

+
+

Option 1 : Using the update script

+

There is a helper script that does the update for you :

+
./update
+
+
+

Warning

+

Beware that the script will migrate your database without asking for confirmation. Always make a backup of the database just in case something goes wrong.

+
+

Option 2 : Proceed with the update manually

+

You can at anytime do this to update your install :

+
php artisan down
+git pull
+composer install
+php artisan migrate
+php artisan up
+
+

If something goes wrong

+

Restore your database backup and git checkout a previous (working) version. Then re-run composer install.

+

Contact us if an update fails (it never happened so this kind of failure is highly interesting information for the project).

+

Version Specific Instructions

+

Upgrade to 1.5

+

After the normal update you might get an error mentioning duplicate username key in user table.

+

Run php artisan agorakit:enforceuniqueusernames to fix the issue +Then re-run the update script.

+

This happens only on large installs and can be run multiple times without problem. It's a future proof fix for this issue.

+
+

Note

+

Most one time upgrades like the one mentionned above are now made inside migrations to reduce the amount of documentation you need to read in order to properly upgrade your installation. Sit back, relax, and enjoy automation at work :-)

+
+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/usage.html b/usage.html new file mode 100644 index 0000000..8de4e39 --- /dev/null +++ b/usage.html @@ -0,0 +1,1109 @@ + + + + + + + + + + + + + + + + + + + + + + + Using Agorakit - Agorakit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

Using Agorakit

+

Start discussions

+

Each group allows one to create discussions. Within discussions and comments, you can use a special syntax to reference existing files and discussions, and mention users.

+
    +
  • Just start typing @ to mention someone (autocomplete appears)
  • +
+

You may also directly attach a file to a discussion. Use the "Browse..." button below the discussion form to upload a file from your computer, attach it to the group, and mention it in the discussion in one go.

+

Schedule events

+

Each group has a calendar where you can add actions/events. You just need to set a start date and time, and an optional duration. If no duration is set, it is assumed to be 1 hour.

+ +

You can add file to groups directly in the files tab. Just upload one or more files, add some tags for organization. As explained above, you can also directly attach files to comments and discussions.

+

Categorize content using tags

+

Tags (aka Labels) are very important to organize your content. You can tag anything in Agorakit (files, users, discussions, groups, actions). Group admins can either choose to use freeform tagging (anyone can choose any tag) or restrict the tags you can use in each group (more like github labels for example).

+

Once content is tagged, it can be found as a simple overview page, showing all tags and showing all content attached to a particular tag. Great to have a big overview of your groups.

+

Last step : profit !

+

(or in some cases, revolution!)

+ + + + + + + + + + + + + +
+
+ + + +
+ +
+ + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file