mirror of
https://github.com/awesome-selfhosted/awesome-selfhosted.git
synced 2025-04-22 16:58:06 +02:00
Uploaded Docsify Docs
This commit is contained in:
parent
4ee064641e
commit
a468a7d5e6
11 changed files with 1523 additions and 0 deletions
685
docs/Info/Authors.md
Normal file
685
docs/Info/Authors.md
Normal file
|
@ -0,0 +1,685 @@
|
|||
|Commits | Author |
|
||||
| :---: | --- |
|
||||
|1032|nodiscc <nodiscc@gmail.com>|
|
||||
|319|Kickball <ed.kickball@hotmail.com>|
|
||||
|253|n8225 <n8225@users.noreply.github.com>|
|
||||
|122|Andrew Rylatt <arylatt@users.noreply.github.com>|
|
||||
|77|Meitar M <meitarm@gmail.com>|
|
||||
|35|Kovah <mail@kovah.de>|
|
||||
|31|DJCrashdummy <DJCrashdummy@users.noreply.github.com>|
|
||||
|26|worldworm <13227454+worldworm@users.noreply.github.com>|
|
||||
|23|cave beat <cave@cavebeat.org>|
|
||||
|17|Thomas Dalichow <info@thomasdalichow.de>|
|
||||
|14|Miguel Piedrafita <github@miguelpiedrafita.com>|
|
||||
|13|jungle-boogie <sean@jungleboogie.me>|
|
||||
|12|Alex <alex@maximum.guru>|
|
||||
|12|Ferdinand Mütsch <mail@ferdinand-muetsch.de>|
|
||||
|12|Pe46dro <pietro@marangon.me>|
|
||||
|11|Pietro Marangon <pietro.marangon@gmail.com>|
|
||||
|9|Andrew Peng <pengc99@gmail.com>|
|
||||
|9|Joubert RedRat <eu+github@redrat.com.br>|
|
||||
|9|Lance M <mightyfree@users.noreply.github.com>|
|
||||
|9|cave <cavebeat@users.noreply.github.com>|
|
||||
|8|CooperBarrett <anthony.lhuissier@openmailbox.org>|
|
||||
|8|Nick Busey <NickBusey@users.noreply.github.com>|
|
||||
|7|Hammy Havoc <hammy@splitanatom.com>|
|
||||
|7|Ilian <ugg.rock@gmail.com>|
|
||||
|7|aubrel <red_clover@riseup.net>|
|
||||
|7|n1trux <n1trux@users.noreply.github.com>|
|
||||
|7|phre4k <me@phre4k.at>|
|
||||
|7|édouard u. <mail@edouard.us>|
|
||||
|6|Jorge E. Gomez <jegomez@agofer.com.co>|
|
||||
|6|Per Guth <mail@perguth.de>|
|
||||
|6|Quinn Comendant <quinn@strangecode.com>|
|
||||
|6|Touhid Arastu <touhid.arastu@gmail.com>|
|
||||
|5|Chris McCormick <chris@mccormick.cx>|
|
||||
|5|James Cole <JC5@users.noreply.github.com>|
|
||||
|5|Jean Champémont <jchampemont@users.noreply.github.com>|
|
||||
|5|Johannes Zellner <johannes@nebulon.de>|
|
||||
|5|Karl Coelho <karl.coelho1@gmail.com>|
|
||||
|5|Kevin Lin <developer@kevinlin.info>|
|
||||
|5|Max Maischein <github@corion.net>|
|
||||
|5|Mohammad Faisal <faisalhmohd@live.com>|
|
||||
|5|Moti Korets <moti.kor@gmail.com>|
|
||||
|5|Muhammad Hussein Fattahizadeh <m@mhf.ir>|
|
||||
|5|Philip Kirkbride <kirkins@gmail.com>|
|
||||
|5|Surgie Finesse <finesserus@gmail.com>|
|
||||
|5|azlux <github@azlux.fr>|
|
||||
|5|mestaritonttu <mestaritonttu@mail.com>|
|
||||
|4|/c² <cagataycali@icloud.com>|
|
||||
|4|Alejandro Celaya <alejandrocelaya@gmail.com>|
|
||||
|4|AlessioCasco <cascoalessio@gmail.com>|
|
||||
|4|Alexander Litreev <alxdrlitreev@users.noreply.github.com>|
|
||||
|4|Alexandr Emelin <frvzmb@gmail.com>|
|
||||
|4|AndrewCz <smacz42@users.noreply.github.com>|
|
||||
|4|Andrey Semakin <and-semakin@ya.ru>|
|
||||
|4|Aravindo Wingeier <synox@users.noreply.github.com>|
|
||||
|4|Arda Kılıçdağı <ardakilicdagi@gmail.com>|
|
||||
|4|Bob van Luijt <bob@semi.technology>|
|
||||
|4|Christian Bayer <cave@cavebeat.org>|
|
||||
|4|Cody Heimberger <cody.heimberger@printerlogic.com>|
|
||||
|4|Colin Pokowitz <colin@cpdev.me>|
|
||||
|4|Colin Pokowitz <colinpokowitz03@gmail.com>|
|
||||
|4|Cory Gibbons <hello@corygibbons.com>|
|
||||
|4|D <DL88250@gmail.com>|
|
||||
|4|Dave Lockwood <1261876+deamos@users.noreply.github.com>|
|
||||
|4|Dominik Pfaffenbauer <dominik@lineofcode.at>|
|
||||
|4|Dr. Azrael Tod <github.com@g33ky.de>|
|
||||
|4|Eliot Whalan <ewhal@pantsu.cat>|
|
||||
|4|Ilya Sevostyanov <d3th@zeen.ru>|
|
||||
|4|Jan Vlnas <jnv@users.noreply.github.com>|
|
||||
|4|Jan-Lukas Else <jlelse@users.noreply.github.com>|
|
||||
|4|Jason Robinson <mail@jasonrobinson.me>|
|
||||
|4|Jean Elchinger <jinformatique@riseup.net>|
|
||||
|4|Joery Zegers <accounts@jzegers.nl>|
|
||||
|4|Jorge E. Gomez <jorge@jorgee.net>|
|
||||
|4|Joshua Westerheide <dev@jdoubleu.de>|
|
||||
|4|Koichi MATSUMOTO <mzch@mac.com>|
|
||||
|4|MK <kohenkatz@gmail.com>|
|
||||
|4|Mancy <abdullah.mancy@gmail.com>|
|
||||
|4|Marius Voila <marius.voila@gmail.com>|
|
||||
|4|Meitar M <meitarm+github.1djyXhCkVsRYzZRk@gmail.com>|
|
||||
|4|Rodolfo Berrios <inbox@rodolfoberrios.com>|
|
||||
|4|Sebastian Stehle <sebastian@squidex.io>|
|
||||
|4|Tony <goofballtech@gmail.com>|
|
||||
|4|Valmik <mail@valmik.in>|
|
||||
|4|apacketofsweets <19573127+apacketofsweets@users.noreply.github.com>|
|
||||
|4|bysslord <wxwlegend@gmail.com>|
|
||||
|4|cthu1hoo <47687909+cthu1hoo@users.noreply.github.com>|
|
||||
|4|dattaz <taz@dattaz.fr>|
|
||||
|4|dpfaffenbauer <dominik@lineofcode.at>|
|
||||
|4|dyu <david.yu.ftw@gmail.com>|
|
||||
|4|hebbet <pascal.herbert@gmail.com>|
|
||||
|4|paddo <mail@patrickrichter.net>|
|
||||
|3|Aguay <baraise.valentin@gmail.com>|
|
||||
|3|Akhyar Amarullah <akhyrul@gmail.com>|
|
||||
|3|Alexey Velikiy <gmpota@gmail.com>|
|
||||
|3|BernsteinA <4685390+BernsteinA@users.noreply.github.com>|
|
||||
|3|Brandon Jones <brandon@radroot.com>|
|
||||
|3|Burak Emre Kabakcı <emrekabakci@gmail.com>|
|
||||
|3|Conor O'Callaghan <brioscaibriste@users.noreply.github.com>|
|
||||
|3|Cédric Krier <cedk@users.noreply.github.com>|
|
||||
|3|Daniel Mason <danielmason@catalyst.net.nz>|
|
||||
|3|Danja Vasiliev <danja@k0a1a.net>|
|
||||
|3|Erik <erikhubers@users.noreply.github.com>|
|
||||
|3|Ethan Lowman <ethanal@users.noreply.github.com>|
|
||||
|3|FoxMaSk <foxmask@users.noreply.github.com>|
|
||||
|3|Francisco Gálvez <crishnakh@users.noreply.github.com>|
|
||||
|3|François-Xavier Lyonnet du Moutier <fx.du.moutier@gmail.com>|
|
||||
|3|Gabin <hello@gabinaureche.com>|
|
||||
|3|Garrett Martin <me@garrettqmartin.com>|
|
||||
|3|George C. Privon <privong@users.noreply.github.com>|
|
||||
|3|Görkem Çetin <gc@count.ly>|
|
||||
|3|Harvey Kandola <harvey@documize.com>|
|
||||
|3|Ilya Pirozhenko <ilya.pir@gmail.com>|
|
||||
|3|IrosTheBeggar <paul.sori@gmail.com>|
|
||||
|3|James Cole <thegrumpydictator@gmail.com>|
|
||||
|3|Jiří Komárek <xkomczax@centrum.cz>|
|
||||
|3|Kevin Hinterlong <kevinhinterlong@users.noreply.github.com>|
|
||||
|3|Lee Watson <rev@revthefox.co.uk>|
|
||||
|3|Leo Gaggl <leo@brightcookie.com.au>|
|
||||
|3|Marc Picaud <picaud.marc@gmail.com>|
|
||||
|3|MarceauKa <MarceauKa@users.noreply.github.com>|
|
||||
|3|Mariusz Kozakowski <11mariom+wordpress@gmail.com>|
|
||||
|3|Martin Gontovnikas <martin@gon.to>|
|
||||
|3|Mathieu Leplatre <mathieu@leplat.re>|
|
||||
|3|Matt Baer <matt@baer.works>|
|
||||
|3|Mitchell Urgero <info@urgero.org>|
|
||||
|3|Morris Jobke <hey@morrisjobke.de>|
|
||||
|3|Nick Fox <nick.fox@jobsite.co.uk>|
|
||||
|3|No GUI <evaryont@users.noreply.github.com>|
|
||||
|3|Ovidiu Dan <zmarty@users.noreply.github.com>|
|
||||
|3|Pavan Yara <yarapavan@gmail.com>|
|
||||
|3|Peter Thaleikis <spekulatius@users.noreply.github.com>|
|
||||
|3|Pierre Blanes <inattendu@users.noreply.github.com>|
|
||||
|3|Pierre Tinard <Edraens@users.noreply.github.com>|
|
||||
|3|Prashant Singh <prashant.singh852@webkul.com>|
|
||||
|3|PrplHaz4 <PrplHaz4@users.noreply.github.com>|
|
||||
|3|Roland Whitehead <4478022+qururoland@users.noreply.github.com>|
|
||||
|3|Ryan DeShone <rfdeshon@gmail.com>|
|
||||
|3|Sergio Brighenti <sergio@brighenti.me>|
|
||||
|3|Sung Won Cho <sung@monomax.sh>|
|
||||
|3|Tobi Schäfer <interface@p3k.org>|
|
||||
|3|Yann Forget <forget.yann31@gmail.com>|
|
||||
|3|Ye Lin Aung <me@yelinaung.com>|
|
||||
|3|Yuchen Ying <github.com@yegle.net>|
|
||||
|3|ddffnn <ddffnn@users.noreply.github.com>|
|
||||
|3|icterine <account@caravat.e4ward.com>|
|
||||
|3|jungle-boogie <sean@rastasean.net>|
|
||||
|3|moba <moba@users.noreply.github.com>|
|
||||
|3|oknozor <paul.delafosse@protonmail.com>|
|
||||
|3|pszlazak <pszlazak@users.noreply.github.com>|
|
||||
|3|rett gerst <rettgerst@users.noreply.github.com>|
|
||||
|3|sapioit <sapioit@users.noreply.github.com>|
|
||||
|3|slauzon <seth.lauzon@gmail.com>|
|
||||
|3|xBytez <git@xbytez.io>|
|
||||
|2|0xflotus <0xflotus@gmail.com>|
|
||||
|2|132ikl <132@ikl.sh>|
|
||||
|2|A. Cynic <chris@mretc.net>|
|
||||
|2|Aditya Nagla <me@imadityang.xyz>|
|
||||
|2|Adminrezo (Nico Dewaele) <nico@adminrezo.fr>|
|
||||
|2|Albert Cervera i Areny <albert@nan-tic.com>|
|
||||
|2|Alex Bogdanovski <alex@erudika.com>|
|
||||
|2|Alexander Ryzhov <gtihub@ryzhov-al.ru>|
|
||||
|2|Alexis Metaireau <alexis@notmyidea.org>|
|
||||
|2|Amos <amos@amosarts.com>|
|
||||
|2|Andrei Poenaru <andrei.poenaru@gmail.com>|
|
||||
|2|Andrew Hayworth <hayworth@meraki.net>|
|
||||
|2|Andrew Rabert <ar@nullsum.net>|
|
||||
|2|Arik Fraimovich <arik@arikfr.com>|
|
||||
|2|Ave <ave@ave.zone>|
|
||||
|2|Bartłomiej Kurzeja <B3QL@users.noreply.github.com>|
|
||||
|2|Ben Yanke <ben@benyanke.com>|
|
||||
|2|Benjamin Gamard <benjamin.gam@gmail.com>|
|
||||
|2|Braintelligence <Braintelligence@users.noreply.github.com>|
|
||||
|2|Brendan Abolivier <contact@brendanabolivier.com>|
|
||||
|2|Brian Morin <bdmorin@gmail.com>|
|
||||
|2|Carlo F. Quaglia <cfq20@users.noreply.github.com>|
|
||||
|2|Charles Farence III <charles@charlessite90.com>|
|
||||
|2|Chris Missal <chris.missal@gmail.com>|
|
||||
|2|Christopher Charbonneau Wells <cdubz@users.noreply.github.com>|
|
||||
|2|Cleberson Ramirio <cleberson.ramirio@outlook.com>|
|
||||
|2|Costin Moise <necenzurat@gmail.com>|
|
||||
|2|Daniel Heath <daniel@heath.cc>|
|
||||
|2|Daniel Ramirez Grave de Peralta <dxas90@gmail.com>|
|
||||
|2|David Leonard <david@appliedtrust.com>|
|
||||
|2|David Wayne Baxter <dbxt@users.noreply.github.com>|
|
||||
|2|Derek Viera <ma.dmviera01@gmail.com>|
|
||||
|2|Deryck <dhenson02@users.noreply.github.com>|
|
||||
|2|Dhruv Sharma <dhruvparamhans@users.noreply.github.com>|
|
||||
|2|Dillon Stadther <dlstadther@gmail.com>|
|
||||
|2|Dominic Pratt <github@dominicpratt.de>|
|
||||
|2|Dr. Ridgewell <ridgewell@users.noreply.github.com>|
|
||||
|2|Eliot Berriot <contact@eliotberriot.com>|
|
||||
|2|Fabian Schliski <Kombustor@users.noreply.github.com>|
|
||||
|2|Feleg <fegul@users.noreply.github.com>|
|
||||
|2|Felix Bartels <felix@host-consultants.de>|
|
||||
|2|Gabin Aureche <gabin.aureche@live.fr>|
|
||||
|2|Gabriel Cossette <gabriel.cossette@gmail.com>|
|
||||
|2|Gerardo Baez <g@gerardobaez.com>|
|
||||
|2|Gleb Mazovetskiy <glex.spb@gmail.com>|
|
||||
|2|Gonçalo Valério <dethos@users.noreply.github.com>|
|
||||
|2|Greg Slepak <contact@taoeffect.com>|
|
||||
|2|Greg V <greg@unrelenting.technology>|
|
||||
|2|Haukur Rosinkranz <hauxir@gmail.com>|
|
||||
|2|Henry Ruhs <info@redaxmedia.com>|
|
||||
|2|Hilmi Tolga Sahin <htolgasahin@gmail.com>|
|
||||
|2|Ivan Krutov <vania-pooh@vania-pooh.com>|
|
||||
|2|Jake Breindel <j.breindel2@outlook.com>|
|
||||
|2|Jake Jarvis <jakejarvis@gmail.com>|
|
||||
|2|Jan <jaltek@users.noreply.github.com>|
|
||||
|2|Jan Soendermann <jan.soendermann+git@gmail.com>|
|
||||
|2|Jared Shields <jwshields2006@hotmail.com>|
|
||||
|2|Jipok <braaga@inbox.ru>|
|
||||
|2|Jonas L <jooola@users.noreply.github.com>|
|
||||
|2|Jordon Replogle <jordon.replogle@blueletterbible.org>|
|
||||
|2|Joseph Dykstra <josephdykstra@gmail.com>|
|
||||
|2|Julien Bisconti <veggiemonk@users.noreply.github.com>|
|
||||
|2|Jérémie Astori <jeremie@astori.fr>|
|
||||
|2|Keith Thibodeaux <kthibodeaux@peachtreebilling.com>|
|
||||
|2|Kevin Vandenborne <kevin.vandenborne@gmail.com>|
|
||||
|2|Klaus-Uwe Mitterer <info@klaus-uwe.me>|
|
||||
|2|Kukielka <philipp_kutyla@gmx.de>|
|
||||
|2|Lanre Adelowo <adelowomailbox@gmail.com>|
|
||||
|2|Liam Demafelix <hello@liam.ph>|
|
||||
|2|Madhu GB <github@madhugb.com>|
|
||||
|2|Malte Kiefer <malte.kiefer@mailgermania.de>|
|
||||
|2|Manuel Uberti <manuel-uberti@users.noreply.github.com>|
|
||||
|2|Marc Laporte <marc@laporte.name>|
|
||||
|2|Marcel Brückner <marcelbrueckner@gmx.de>|
|
||||
|2|Marien Fressinaud <dev@marienfressinaud.fr>|
|
||||
|2|Marius Lindvall <marius@varden.info>|
|
||||
|2|Markus M. Deuerlein <mdeuerlein@users.noreply.github.com>|
|
||||
|2|MarkusMcNugen <marknewton5@gmail.com>|
|
||||
|2|Martijn <mrtijn@riseup.net>|
|
||||
|2|Massimo Santini <massimo.santini@gmail.com>|
|
||||
|2|Mats Estensen <mats.est@gmail.com>|
|
||||
|2|Matt Hazinski <matt@matthazinski.com>|
|
||||
|2|Matthieu Aubry <matt@piwik.org>|
|
||||
|2|Melvin Loos <melvin@melvinloos.nl>|
|
||||
|2|Michael Tunnell <MichaelTunnell@users.noreply.github.com>|
|
||||
|2|Mikael Peigney <Mika56@users.noreply.github.com>|
|
||||
|2|Murali Govardhana <murali.govardhana@gmail.com>|
|
||||
|2|Nehal Hasnayeen <searching.nehal@gmail.com>|
|
||||
|2|Nicolas Carlier <n.carlier@nunux.org>|
|
||||
|2|Oliver Giles <ohw.giles@gmail.com>|
|
||||
|2|Patrik Ragnarsson <patrik@starkast.net>|
|
||||
|2|Pavel Korotkiy <outdead@mail.ru>|
|
||||
|2|Pavel Lobashov <ShockwaveNN@gmail.com>|
|
||||
|2|Pernat1y <mirnesen@gmail.com>|
|
||||
|2|Peter Demin <poslano@gmail.com>|
|
||||
|2|Peter Ivanov <peter@microweber.com>|
|
||||
|2|Phil <phil@sapphyrus.xyz>|
|
||||
|2|Phonic Mouse <phonicmouse@users.noreply.github.com>|
|
||||
|2|Pierre Buyle <pierre@buyle.org>|
|
||||
|2|Pierre Ozoux <pierre@ozoux.net>|
|
||||
|2|Poorchop <Poorchop@users.noreply.github.com>|
|
||||
|2|Prabhanjan <prabhanjan.padhye@confluxsys.com>|
|
||||
|2|Raymond Berger <RayBB@users.noreply.github.com>|
|
||||
|2|ReadmeCritic <frankensteinbot@gmail.com>|
|
||||
|2|Ricardo Torres <ricardo@rictorres.com.br>|
|
||||
|2|Rid <shakeel.ridhwaan@gmail.com>|
|
||||
|2|Rodolfo Berrios <rodolfo.berrios@gmail.com>|
|
||||
|2|Roland Geider <roland@geider.net>|
|
||||
|2|Ryan Mulligan <ryan@ryantm.com>|
|
||||
|2|Sam Tuke <mail@samtuke.com>|
|
||||
|2|Sameer Al-Sakran <salsakran@users.noreply.github.com>|
|
||||
|2|Sandeep S <ghostpirate@users.noreply.github.com>|
|
||||
|2|Sandro <sandro.jaeckel@posteo.de>|
|
||||
|2|Scot Hacker <shacker@birdhouse.org>|
|
||||
|2|Shane Cooke <shanecooke@mac.com>|
|
||||
|2|Simon Vieille <simon@deblan.fr>|
|
||||
|2|Simone Grignola <sito@grignola.ch>|
|
||||
|2|Sjoerd van der Hoorn <sjoerdvanderhoorn@hotmail.com>|
|
||||
|2|Spark <24642451+Sparkenstein@users.noreply.github.com>|
|
||||
|2|Stefan Bohacek <stefan.bohacek@gmail.com>|
|
||||
|2|Stefane Fermigier <sf@fermigier.com>|
|
||||
|2|Stefano <sabas88@gmail.com>|
|
||||
|2|Suraj Patil <thewhitetulip@users.noreply.github.com>|
|
||||
|2|Think <iwhiz@users.noreply.github.com>|
|
||||
|2|Thomas Citharel <tcit@tcit.fr>|
|
||||
|2|Tomer <tomer@campuscruizer.com>|
|
||||
|2|Tomer Cohen <tomer@users.noreply.github.com>|
|
||||
|2|Tony Xu <yihan.xu@gmail.com>|
|
||||
|2|Vadim Rutkovsky <vrutkovs@redhat.com>|
|
||||
|2|Valentino Pesce <valentino@iltuobrand.it>|
|
||||
|2|Van-Duyet Le <lvduit08@gmail.com>|
|
||||
|2|Vladimir Avgustov <vavgustov@gmail.com>|
|
||||
|2|Will Bennett <william.11bennett@gmail.com>|
|
||||
|2|William Notowidagdo <wnotowidagdo@gmail.com>|
|
||||
|2|Yann <forget.yann31@gmail.com>|
|
||||
|2|Zeniic <Zeniic@users.noreply.github.com>|
|
||||
|2|agetic <agetic@debian>|
|
||||
|2|charsi <charsi@users.noreply.github.com>|
|
||||
|2|cornerot <cornerot@gmail.com>|
|
||||
|2|cron410 <cron410@gmail.com>|
|
||||
|2|digiou <digitalbckp@gmail.com>|
|
||||
|2|emeric <itmfr@yahoo.fr>|
|
||||
|2|erdihu <erdihu@users.noreply.github.com>|
|
||||
|2|fengshaun <amoradi@fedoraproject.org>|
|
||||
|2|fuerbringer <severin@protonmail.ch>|
|
||||
|2|gseva <gavrilovseva@gmail.com>|
|
||||
|2|jciskey <jciskey@gmail.com>|
|
||||
|2|jganobsik <39414138+jganobsik@users.noreply.github.com>|
|
||||
|2|jimykk <JimyKK@users.noreply.github.com>|
|
||||
|2|jtagcat <38327267+jtagcat@users.noreply.github.com>|
|
||||
|2|markkrj <markkrj@users.noreply.github.com>|
|
||||
|2|maximesrd <maximesrd@maximesourdin.ovh>|
|
||||
|2|rafael-santiago <voidbrainvoid@gmail.com>|
|
||||
|2|thomasfrivold <thomas.frivold@gmail.com>|
|
||||
|2|tillarnold <throwable42@gmail.com>|
|
||||
|2|tomc3 <wordoftheday003@gmail.com>|
|
||||
|2|xy2z <xy2z@users.noreply.github.com>|
|
||||
|2|yuche <i@yuche.me>|
|
||||
|2|ziλa sarikaya <sarikayaziya@gmail.com>|
|
||||
|2|znegva <znegva@users.noreply.github.com>|
|
||||
|2|Žygimantas Medelis <zygimantas.medelis@tokenmill.lt>|
|
||||
|2|王可森 <wangkesen@users.noreply.github.com>|
|
||||
|1|4oo4 <4oo4@users.noreply.github.com>|
|
||||
|1|Aaron <44198148+whalehub@users.noreply.github.com>|
|
||||
|1|Adam C <39806482+adam-redcort@users.noreply.github.com>|
|
||||
|1|Adam Johnson <me@adamj.eu>|
|
||||
|1|Adrian Kumpf <adrian.kumpf@posteo.de>|
|
||||
|1|Akos Veres <veres@akos.me>|
|
||||
|1|Alashov Berkeli <yunus.alashow@gmail.com>|
|
||||
|1|Alberto Bertogli <albertito@blitiri.com.ar>|
|
||||
|1|Alejandro Rodríguez <arcxyz@users.noreply.github.com>|
|
||||
|1|Alex Fornuto <alex@fornuto.com>|
|
||||
|1|Alex Yumashev <33555768+alex-jitbit@users.noreply.github.com>|
|
||||
|1|Alexandr Nesterenko <kuchaspama@gmail.com>|
|
||||
|1|Alexandre Abita <xouabita@gmail.com>|
|
||||
|1|Alexey Strokach <alex.strokach@utoronto.ca>|
|
||||
|1|Alfred Bez <alfred.bez@googlemail.com>|
|
||||
|1|Algram <aliasgram@gmail.com>|
|
||||
|1|Alys <alice.harris@oldgods.net>|
|
||||
|1|Anders Pitman <tapitman11@gmail.com>|
|
||||
|1|Andre <andre.lehmann@posteo.de>|
|
||||
|1|Andrew Murray <radarhere@gmail.com>|
|
||||
|1|Andrew Nesbitt <andrewnez@gmail.com>|
|
||||
|1|Andrew Prokhorenkov <andrew.prokhorenkov@gmail.com>|
|
||||
|1|Andrey <andrey200964@yandex.ru>|
|
||||
|1|Andrey Kuznetsov <fear@loathing.in>|
|
||||
|1|André Rodier <arodier@users.noreply.github.com>|
|
||||
|1|Andy Olsen <andrewolsen@mail.adelphi.edu>|
|
||||
|1|Andyyyyy94 <Andyyyyy94@users.noreply.github.com>|
|
||||
|1|Angel Velasquez <angvp@archlinux.org>|
|
||||
|1|Antoine <anthonyfg9@gmail.com>|
|
||||
|1|Antoine Gersant <antoine.gersant@lesforges.org>|
|
||||
|1|Anton Troyanov <anton@troyanov.net>|
|
||||
|1|Arkady Asuratov <arkady.asuratov@dubas.pro>|
|
||||
|1|Armando Lüscher <armando@noplanman.ch>|
|
||||
|1|Arnold Schrijver <aschrijver@users.noreply.github.com>|
|
||||
|1|ArthurHoaro <arthur@hoa.ro>|
|
||||
|1|Austin <austi_gillm935@ahapps.anoka.k12.mn.us>|
|
||||
|1|BN <biczoxd@gmail.com>|
|
||||
|1|Bas <mega@ioexception.at>|
|
||||
|1|Bastien Wirtz <bastien.wirtz@gmail.com>|
|
||||
|1|Beard of War <rebelgeek@blainsmith.com>|
|
||||
|1|Ben <ben@rngr.org>|
|
||||
|1|Ben Abbott <ben@benabbott.nz>|
|
||||
|1|Benj Fassbind <randombenj@gmail.com>|
|
||||
|1|Benjamin Lange <benjamin.r.lange@gmail.com>|
|
||||
|1|Bernd Bestel <bernd@berrnd.de>|
|
||||
|1|Bharat Kalluri <bharatkalluri@protonmail.com>|
|
||||
|1|Blake Bourque <Techplex.Engineer@gmail.com>|
|
||||
|1|Bob "Wombat" Hogg <wombat@rwhogg.site>|
|
||||
|1|Bob Mottram <bob@robotics.uk.to>|
|
||||
|1|Brett <brettex@hotmail.com>|
|
||||
|1|Brian <bdmorin@users.noreply.github.com>|
|
||||
|1|Burung Hantu <privacytoolsIO@users.noreply.github.com>|
|
||||
|1|Buster "Silver Eagle" Neece <loobalightdark@gmail.com>|
|
||||
|1|C.J. Jameson <cjcjameson@gmail.com>|
|
||||
|1|Caleb Xu <calebcenter@live.com>|
|
||||
|1|Calle Wolff <carl@wolff.se>|
|
||||
|1|Carlos Rodriguez <carlos@s8f.org>|
|
||||
|1|Chanchal Kumar Ghosh <chanchal_ghosh1987@yahoo.co.in>|
|
||||
|1|Chandan Rai <dev.chandan.rai@gmail.com>|
|
||||
|1|Charles Barnes <cbarnes@bullhorn.com>|
|
||||
|1|Charles Barnes <charlesabarnesjr@gmail.com>|
|
||||
|1|Charlotte Tan <charlottetan@users.noreply.github.com>|
|
||||
|1|Chema <neo22s@gmail.com>|
|
||||
|1|Chris Legault <chrislegault2011@gmail.com>|
|
||||
|1|Christoph (Sheogorath) Kern <sheogorath@shivering-isles.com>|
|
||||
|1|Christoph Kappestein <k42b3.x@gmail.com>|
|
||||
|1|Christoph Wiechert <wio@psitrax.de>|
|
||||
|1|Christophe Hamerling <christophe.hamerling@gmail.com>|
|
||||
|1|Clément AUBIN <caubin@caubin.fr>|
|
||||
|1|Colin <16247799+cpdevelops@users.noreply.github.com>|
|
||||
|1|Colin Shea <colin@evaryont.me>|
|
||||
|1|Craig Davison <craig@davison.io>|
|
||||
|1|Cristian Menghi <cristian@menghi.biz>|
|
||||
|1|CyrilPepito <18053589+CyrilPepito@users.noreply.github.com>|
|
||||
|1|Cédric <cedric@cedricbonhomme.org>|
|
||||
|1|Damir Gainetdinov <damir.gaynetdinov@gmail.com>|
|
||||
|1|Dan <rocks.in.the.cloud@gmail.com>|
|
||||
|1|Danny <dannyvankooten@gmail.com>|
|
||||
|1|Danny van Kooten <dannyvankooten@users.noreply.github.com>|
|
||||
|1|David <vaidd4@users.noreply.github.com>|
|
||||
|1|David Baldwynn <whitef0x0@users.noreply.github.com>|
|
||||
|1|David Ng <david90@users.noreply.github.com>|
|
||||
|1|David Stephens <dave@force9.org>|
|
||||
|1|David Yu <david.yu.ftw@gmail.com>|
|
||||
|1|Denis <isdn@users.noreply.github.com>|
|
||||
|1|Denis <issden@gmail.com>|
|
||||
|1|Diego Molina <diemol@users.noreply.github.com>|
|
||||
|1|Dimitri Steinel <d.steinel@de.edenspiekermann.com>|
|
||||
|1|Dirk Krause <dirkk0@googlemail.com>|
|
||||
|1|Dmitriy Volkov <wldhx+vcs+github_com@wldhx.me>|
|
||||
|1|Dmitry Khomutov <poisoncorpsee@gmail.com>|
|
||||
|1|Doğan Çelik <dogancelik@users.noreply.github.com>|
|
||||
|1|Dražen Lučanin <kermit666@gmail.com>|
|
||||
|1|Ed Tewiah <etewiah@hotmail.com>|
|
||||
|1|Edoardo Putti <edoardo.putti@gmail.com>|
|
||||
|1|Edreih Aldana <edreihaldana@yahoo.com>|
|
||||
|1|Eike Kettner <eike.kettner@posteo.de>|
|
||||
|1|Emeric POUPON <epoupon@users.noreply.github.com>|
|
||||
|1|Emlembow <36314674+Emlembow@users.noreply.github.com>|
|
||||
|1|Eran Chetz <eran.chetzroni@algolia.com>|
|
||||
|1|Eren Hatırnaz <erenhatirnaz@hotmail.com.tr>|
|
||||
|1|Eric Moon <eric@ericmoon.net>|
|
||||
|1|Eric Nemchik <eric@nemchik.com>|
|
||||
|1|Eric Park <ideamaneric@gmail.com>|
|
||||
|1|Error1000 <50962908+Error1000@users.noreply.github.com>|
|
||||
|1|Ethan Hampton <EMH333@users.noreply.github.com>|
|
||||
|1|Ethan Madden <crazeh.monkeh@gmail.com>|
|
||||
|1|Eugen <eugen@zeonfederated.com>|
|
||||
|1|Evelthon Prodromou <epro@prodromou.eu>|
|
||||
|1|Evgeny Petrov <groosha@protonmail.com>|
|
||||
|1|Fabian Patzke <github@patzi.de>|
|
||||
|1|Fazal Majid <github@sentfrom.com>|
|
||||
|1|Florian <flokX@users.noreply.github.com>|
|
||||
|1|Florian Kaiser <florian.kaiser@fnkr.net>|
|
||||
|1|Florian Kaldowski <flokX@users.noreply.github.com>|
|
||||
|1|Florian Wilhelm <f.wilhelm@tarent.de>|
|
||||
|1|FortressBuilder <FortressBuilder@users.noreply.github.com>|
|
||||
|1|François Jacquet <francoisjacquet@users.noreply.github.com>|
|
||||
|1|FreeScout <40499291+freescout-helpdesk@users.noreply.github.com>|
|
||||
|1|Galen Abell <galen@galenabell.com>|
|
||||
|1|Gio <giodi@users.noreply.github.com>|
|
||||
|1|Girish Ramakrishnan <mail@girish.in>|
|
||||
|1|Greg Chetcuti <greg@chetcuti.com>|
|
||||
|1|Guilherme Oenning <me@goenning.net>|
|
||||
|1|Henrique Holanda <contato@henriqueholanda.com.br>|
|
||||
|1|Herman Zvonimir Došilović <hermanz.dosilovic@gmail.com>|
|
||||
|1|IAlwaysBeCoding <erik.dominguez1003@gmail.com>|
|
||||
|1|Icantcodeatall <francois.lachese@me.com>|
|
||||
|1|Igor Antun <IgorAntun@users.noreply.github.com>|
|
||||
|1|Igor Petrov <garik.piton@gmail.com>|
|
||||
|1|Imron RA <42175898+imronra@users.noreply.github.com>|
|
||||
|1|Isaac <isaacnoda@gmail.com>|
|
||||
|1|Izac Lorimer <izaclorimer@users.noreply.github.com>|
|
||||
|1|Jack <jackdev@mailbox.org>|
|
||||
|1|Jackson Delahunt <jackson@jacksondelahunt.com>|
|
||||
|1|Jakob Gillich <jakob@gillich.me>|
|
||||
|1|James Mills <prologic@shortcircuit.net.au>|
|
||||
|1|Jan <jayphizzle@users.noreply.github.com>|
|
||||
|1|Jannik Anker <jannikanker@users.noreply.github.com>|
|
||||
|1|Janos Dobronszki <dobronszki@gmail.com>|
|
||||
|1|Jarek Lipski <pub@loomchild.net>|
|
||||
|1|Jay Williams <jay@myd3.com>|
|
||||
|1|Jay Yu <265551+GitHubGeek@users.noreply.github.com>|
|
||||
|1|Jay Yu <GitHubGeek@users.noreply.github.com>|
|
||||
|1|Jean Menezes da Rocha <jean@menezesdarocha.info>|
|
||||
|1|Jelmer Vernooij <jelmer@jelmer.uk>|
|
||||
|1|Jeremiah Marks <jeremiah@jlmarks.org>|
|
||||
|1|Joel Calado <joelcalado@gmail.com>|
|
||||
|1|Jon Schoning <jonschoning@gmail.com>|
|
||||
|1|Jonas <j@jfgr.de>|
|
||||
|1|Jonas Hellmann <hellmann.jonas@web.de>|
|
||||
|1|Jordan <15741144+jrdnlc@users.noreply.github.com>|
|
||||
|1|Jordan Doyle <jordan@9t9t9.com>|
|
||||
|1|Jordan Doyle <jordan@doyle.la>|
|
||||
|1|Josh Harmon <me@joshharmon.me>|
|
||||
|1|Joshua Hamilton <joshua.hamilton@fabricut.com>|
|
||||
|1|José Castro <cogurov@gmail.com>|
|
||||
|1|Julien <bibich@users.noreply.github.com>|
|
||||
|1|Julien Bisconti <julien.bisconti@gmail.com>|
|
||||
|1|Julien Reichardt <jul.reich43@opmbx.org>|
|
||||
|1|Justin Clift <justin@postgresql.org>|
|
||||
|1|Justin O'Reilly <justin@oreilly.me>|
|
||||
|1|Kacper <kacper@kacperadler.info>|
|
||||
|1|Karl Gumerlock <karl@gumerlock.com>|
|
||||
|1|KarloLuiten <github@karloluiten.nl>|
|
||||
|1|Kaveet Laxmidas <kaveetlaxmidas@gmail.com>|
|
||||
|1|Kelvin <kelvinhammond@users.noreply.github.com>|
|
||||
|1|Ketrel <webmaster@krahs-emag.com>|
|
||||
|1|Kevin Lin <LINKIWI@users.noreply.github.com>|
|
||||
|1|Keyhaku <jones@bious.fr>|
|
||||
|1|Kieran <kieran.brahney@gmail.com>|
|
||||
|1|Kim Jahn <gitfuckinghub@maisspace.org>|
|
||||
|1|Koichi MATSUMOTO <mzch@me.com>|
|
||||
|1|Konstantin Sorokin <kvs@sigterm.ru>|
|
||||
|1|Kyle Farwell <m@kfarwell.org>|
|
||||
|1|Kyle Stetz <kylestetz@gmail.com>|
|
||||
|1|L1Cafe <L-Cafe-github@tuta.io>|
|
||||
|1|LB (Ben Johnston) <mail@lb.ee>|
|
||||
|1|Leonard Thomas Wall <github@tenchooo.me>|
|
||||
|1|Lescaudron Mathieu <mathieu@lescaudron.com>|
|
||||
|1|Liran Tal <liran.tal@gmail.com>|
|
||||
|1|Lorenz Hübschle-Schneider <lorenzhs@users.noreply.github.com>|
|
||||
|1|Louis Grenard <louis.grenard@gmail.com>|
|
||||
|1|Lukas Masuch <Lukas.Masuch@gmail.com>|
|
||||
|1|Luuk Nieuwdorp <luuknieuwdorp@users.noreply.github.com>|
|
||||
|1|Marcin Karpezo <m.karpezo@nencki.gov.pl>|
|
||||
|1|Marco Dickert <dickert.marco@gmail.com>|
|
||||
|1|Marco Kamner <marco@it-kamner.de>|
|
||||
|1|Marcus Ramberg <marcus@nordaaker.com>|
|
||||
|1|Mark Ide <git@cranstonide.com>|
|
||||
|1|Mark Ide <mark@cranstonide.com>|
|
||||
|1|Mark Railton <mark@markrailton.com>|
|
||||
|1|Markus Dieckmann <markus.dieckmann@posteo.de>|
|
||||
|1|Martin Malinda <malindacz@gmail.com>|
|
||||
|1|Martin Tournoij <martin@arp242.net>|
|
||||
|1|Marvin <Groruk@uberdoge.network>|
|
||||
|1|Marvin Gülker <post+git@guelker.eu>|
|
||||
|1|MatFluor <MatFluor@users.noreply.github.com>|
|
||||
|1|Matt Lee <mattl@users.noreply.github.com>|
|
||||
|1|Matteo Piccina <matteo@beiphone.it>|
|
||||
|1|Matthew Dews <matthew-dews@users.noreply.github.com>|
|
||||
|1|Matthew East <matthew@mattheweast.me>|
|
||||
|1|Matthias De Bie <mattydebie@gmail.com>|
|
||||
|1|Max <2843450+b-m-f@users.noreply.github.com>|
|
||||
|1|Michael Barrow <michael@barrow.me>|
|
||||
|1|Michael Burns <michael@mirwin.net>|
|
||||
|1|Michael Malura <github@malura.me>|
|
||||
|1|Michael van Tricht <mvantricht@expandonline.nl>|
|
||||
|1|Michael van Tricht <swordbeta@users.noreply.github.com>|
|
||||
|1|Mike Goodwin <xenithorb@users.noreply.github.com>|
|
||||
|1|Mike Steele <mike@steel.fm>|
|
||||
|1|Minghe <h.minghe@gmail.com>|
|
||||
|1|MinorTom <TheMinorTom@users.noreply.github.com>|
|
||||
|1|Mitchell R <github@mrincworld.com>|
|
||||
|1|Moritz Kröger <write@morkro.de>|
|
||||
|1|Murali K G <murali.girikg@gmail.com>|
|
||||
|1|Murdoc Bates <trockenasche@gmail.com>|
|
||||
|1|Nick Sweeting <git@nicksweeting.com>|
|
||||
|1|NicolasCARPi <nicolas.carpi@curie.fr>|
|
||||
|1|Norman Xu <im@norm.im>|
|
||||
|1|Nÿco <nicolas.verite@gmail.com>|
|
||||
|1|Ober7 <k.latif.misc@gmail.com>|
|
||||
|1|Oleg Agafonov <oleg.agafonov@telestax.com>|
|
||||
|1|Oliver Kopp <kopp.dev@gmail.com>|
|
||||
|1|Opeyemi Obembe <fickledreams@yahoo.com>|
|
||||
|1|PMK <webmaster@pmklaassen.com>|
|
||||
|1|Paolo Pustorino <stickgrinder@gmail.com>|
|
||||
|1|Pau Kiat Wee <paukiatwee@gmail.com>|
|
||||
|1|Paul <paul@rosanbo.com>|
|
||||
|1|Paul Libbrecht <paul.libbrecht@dipf.de>|
|
||||
|1|Paul Libbrecht <paul@hoplahup.net>|
|
||||
|1|Pavlo Vodopyan <pavel.vodopyan@gmail.com>|
|
||||
|1|Paweł Jakimowski <pawel@jakimowski.info>|
|
||||
|1|Paweł Kapała <bylek77@gmail.com>|
|
||||
|1|Peter Brunner <pbrunner@gmail.com>|
|
||||
|1|Peter Tonoli <peter+github@metaverse.org>|
|
||||
|1|Peter van den Hurk <runical1991@gmail.com>|
|
||||
|1|Philipp Kutyla <philipp@kutyla.de>|
|
||||
|1|Phill <phill@formbet.co.uk>|
|
||||
|1|Phonic Mouse <phonicmouse@gmai.com>|
|
||||
|1|Pierre <21216829+pedrom34@users.noreply.github.com>|
|
||||
|1|Pierre Dubouilh <pldubouilh@gmail.com>|
|
||||
|1|Pietro Pe46dro Marangon <pietro@marangon.me>|
|
||||
|1|Pouria Ezzati <ezzati.upt@gmail.com>|
|
||||
|1|Prahalad Belavadi <prahaladbelavadi@gmail.com>|
|
||||
|1|Rafael Milewski <Milewski@users.noreply.github.com>|
|
||||
|1|Raphael Fetzer <kontakt@fetzer.me>|
|
||||
|1|Remi Rampin <remirampin@gmail.com>|
|
||||
|1|Remy Adriaanse <remy@adriaanse.it>|
|
||||
|1|Remy Honig <remyhonig@users.noreply.github.com>|
|
||||
|1|Richard Thornton <richard@richardthornton.com>|
|
||||
|1|Riddler <Iamjithin@live.com>|
|
||||
|1|Robert Charusta <rchar@protonmail.com>|
|
||||
|1|Roberto Rosario <roberto.rosario.gonzalez@gmail.com>|
|
||||
|1|Rouven Bauer <robsdedude@gmail.com>|
|
||||
|1|RussellAult <RussellAult@users.noreply.github.com>|
|
||||
|1|Ryan Halliday <ry167@ry167.com>|
|
||||
|1|Ryan Noelk <ryannoelk@gmail.com>|
|
||||
|1|Rzeszow <6783135+Rzeszow@users.noreply.github.com>|
|
||||
|1|Sahin Boydas <sahin@movielala.com>|
|
||||
|1|Salvatore Gentile <SalGnt@users.noreply.github.com>|
|
||||
|1|Sam Patterson <bitcoin@samuelrpatterson.com>|
|
||||
|1|Sam Wilson <sam@samwilson.id.au>|
|
||||
|1|Samuel Garneau <sam@garno.me>|
|
||||
|1|Sartaj <sartaj@atomicsquare.com>|
|
||||
|1|Scott Humphries <sscotth@users.noreply.github.com>|
|
||||
|1|Scott Miller <scott.miller.utah@gmail.com>|
|
||||
|1|Senan Kelly <senan.f.b.kelly+github@gmail.com>|
|
||||
|1|Sergey Bronnikov <sergeyb@bronevichok.ru>|
|
||||
|1|Sergey Ponomarev <me@sergey-ponomarev.ru>|
|
||||
|1|Sheldon Rupp <me@shel.io>|
|
||||
|1|Simon Alberny <contact@simounet.net>|
|
||||
|1|Simon Hanna <simon.hanna@jesus.de>|
|
||||
|1|Sourabh Joshi <38150665+sourabh-joshi@users.noreply.github.com>|
|
||||
|1|Spencer McIntyre <zeroSteiner@gmail.com>|
|
||||
|1|Spencer Muise <spencermuise@gmail.com>|
|
||||
|1|Starbeamrainbowlabs <sbrl@starbeamrainbowlabs.com>|
|
||||
|1|Stefan Weil <sw@weilnetz.de>|
|
||||
|1|Steve Divskinsy <stevesbrain@users.noreply.github.com>|
|
||||
|1|Sylvain Boily <sylvainboilydroid@gmail.com>|
|
||||
|1|THS-on <THS-on@users.noreply.github.com>|
|
||||
|1|Tanner Collin <git@tannercollin.com>|
|
||||
|1|The Scorpion <tehscorpion@users.noreply.github.com>|
|
||||
|1|Thomas Ferney <antiseptikk@users.noreply.github.com>|
|
||||
|1|Thomas Hansen <th4019@gmail.com>|
|
||||
|1|Thomas Rohlik <rohlik@3server.cz>|
|
||||
|1|Thorsten Rinne <thorsten@phpmyfaq.de>|
|
||||
|1|Tim Allingham <tim@timallingham.net>|
|
||||
|1|Timur Bublik <timur.bublik@zoho.com>|
|
||||
|1|Tobias Diekershoff <tobias.diekershoff@gmx.net>|
|
||||
|1|Tobias Kunze <rixx@cutebit.de>|
|
||||
|1|Tobias Reich <tobias.reich.ich@gmail.com>|
|
||||
|1|Tobias Zeising <tobias.zeising@aditu.de>|
|
||||
|1|Todd Hoffmann <ddffnn@gmail.com>|
|
||||
|1|Tom Hacohen <tom@stosb.com>|
|
||||
|1|Tomer Shvueli <tomer@shvueli.com>|
|
||||
|1|Tommy Ku <tommyku@users.noreply.github.com>|
|
||||
|1|Trevor Ford <trvrfrd@users.noreply.github.com>|
|
||||
|1|Vadim Markovtsev <vadim@sourced.tech>|
|
||||
|1|Vidas P <vp@automaticmode.com>|
|
||||
|1|Viktor Geringer <devfakeplus@googlemail.com>|
|
||||
|1|Vincent Dauce <eXorus@users.noreply.github.com>|
|
||||
|1|Webmasterish <webmasterish@gmail.com>|
|
||||
|1|William Gathoye <william@gathoye.be>|
|
||||
|1|Yurii Rashkovskii <yrashk@gmail.com>|
|
||||
|1|axeloz <axel@mabox.eu>|
|
||||
|1|benmaynard11 <allowin-217941-github@vhost244.maynardnetworks.com>|
|
||||
|1|bitcoinshirt <36959754+bitcoinshirt@users.noreply.github.com>|
|
||||
|1|bricej13 <bricej13@gmail.com>|
|
||||
|1|c22 <c22@users.noreply.github.com>|
|
||||
|1|cbdev <cb@cbcdn.com>|
|
||||
|1|costpermille <costpermille@users.noreply.github.com>|
|
||||
|1|cpdev <cpdevelops@users.noreply.github.com>|
|
||||
|1|dimqua <dimqua@lavabit.com>|
|
||||
|1|disk0x <mdtha@tutanota.com>|
|
||||
|1|domainzero <domainzero@users.noreply.github.com>|
|
||||
|1|dsx <free.robots@gmail.com>|
|
||||
|1|ePirat <epirat07@gmail.com>|
|
||||
|1|emmanouil <emmanouil@users.noreply.github.com>|
|
||||
|1|evitalis <evitalis@users.noreply.github.com>|
|
||||
|1|fghhfg <fghhfg@users.noreply.github.com>|
|
||||
|1|fi78 <31729946+fi78@users.noreply.github.com>|
|
||||
|1|florianl <florianl@users.noreply.github.com>|
|
||||
|1|foorb <foorb@users.noreply.github.com>|
|
||||
|1|ghaseminya <ghaseminya@gmail.com>|
|
||||
|1|golangci <35628013+golangci@users.noreply.github.com>|
|
||||
|1|ice-92 <ice-92@users.noreply.github.com>|
|
||||
|1|ilsi <ilsi@users.noreply.github.com>|
|
||||
|1|itsnotv <itsnotv@users.noreply.github.com>|
|
||||
|1|jake <jake@diesel>|
|
||||
|1|jarek91 <jarek91@users.noreply.github.com>|
|
||||
|1|jgi <public-devgit-common@gissehel.org>|
|
||||
|1|josh <joshua.r.li.98@gmail.com>|
|
||||
|1|lachlan-00 <lachlan.00@gmail.com>|
|
||||
|1|lardbit <45122868+lardbit@users.noreply.github.com>|
|
||||
|1|littleguga <littleguga@users.noreply.github.com>|
|
||||
|1|lsascha <lsascha@gmail.com>|
|
||||
|1|macmusz <m.muszytowski@simplito.com>|
|
||||
|1|memorex258 <phillip.a.brown@live.com>|
|
||||
|1|mertinop <martin.santibanez.a@gmail.com>|
|
||||
|1|mrkpl125 <33229813+mrkpl125@users.noreply.github.com>|
|
||||
|1|mxroute <37432698+mxroute@users.noreply.github.com>|
|
||||
|1|n2i <xuansamdinh.n2i@gmail.com>|
|
||||
|1|nodomain <ff@nodomain.cc>|
|
||||
|1|norstbox <norstbox@users.noreply.github.com>|
|
||||
|1|pastapojken <pastapojken@users.noreply.github.com>|
|
||||
|1|phobot <piter90@gmail.com>|
|
||||
|1|pips <pips@e5150.fr>|
|
||||
|1|pnhofmann <foss@pnhofmann.de>|
|
||||
|1|poVoq <wm_jkm@yahoo.com>|
|
||||
|1|railscard <railscard@gmail.com>|
|
||||
|1|sc0repi0 <sc0repi0@gmx.de>|
|
||||
|1|skarphet <skarphet@users.noreply.github.com>|
|
||||
|1|sqozz <sqozz@geekify.de>|
|
||||
|1|steven jacobs <stjacobs@fastmail.fm>|
|
||||
|1|stevesbrain <stevesbrain@users.noreply.github.com>|
|
||||
|1|t1st3 <contact@tiste.org>|
|
||||
|1|teaberryy <ekisneels@gmail.com>|
|
||||
|1|timbe16 <timbe16@users.noreply.github.com>|
|
||||
|1|trebonius0 <trebonius@worldofwargraphs.com>|
|
||||
|1|ttoups <ich@timotoups.de>|
|
||||
|1|uchchishta <uchchishta@users.noreply.github.com>|
|
||||
|1|vincent-clipet <vincent.clipet.7@gmail.com>|
|
||||
|1|vinz243 <vinz243@opmbx.org>|
|
||||
|1|wxcafé <wxcafe@wxcafe.net>|
|
||||
|1|xuansamdinh <xuansamdinh.n2i@gmail.com>|
|
||||
|1|zotlabs <mike@macgirvin.com>|
|
||||
|1|Руслан Корнев <oganer@gmail.com>|
|
16
docs/Info/CONTRIBUTING.md
Normal file
16
docs/Info/CONTRIBUTING.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Contributing
|
||||
|
||||
Please open a new issue to clarify any questions, or post in the [General discussion issue](https://github.com/awesome-selfhosted/awesome-selfhosted/issues/89).
|
||||
|
||||
All guidelines for adding new software to the list are listed in [PULL_REQUEST_TEMPLATE.md](PULL_REQUEST_TEMPLATE.md).
|
||||
|
||||
Other recommendations:
|
||||
|
||||
- To add a new entry, [edit the README.md file](https://github.com/awesome-selfhosted/awesome-selfhosted/edit/master/README.md) through Github's web interface or a text editor, and send a Pull Request.
|
||||
- See [Editing files in another user's repository](https://help.github.com/articles/editing-files-in-another-user-s-repository/), [Creating Pull Requests](https://help.github.com/articles/creating-a-pull-request/), [Using Pull Requests](https://help.github.com/articles/using-pull-requests/) for help on sending your patch.
|
||||
- A script to help you format new entries is available at (it requires `make` to be installed): `git clone`/[download](https://github.com/awesome-selfhosted/awesome-selfhosted/archive/master.zip) and enter the repository, run `make add` and follow the instructions.
|
||||
- A website to help you format new entries is available at https://n8225.github.io/
|
||||
- The list of contributors can be updated with `make contrib`.
|
||||
- Software with no development activity for 6-12 months may be removed from the list.
|
||||
- Don't know where to start? Check issues labeled [`help wanted`](https://github.com/awesome-selfhosted/awesome-selfhosted/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) and [`fix`](https://github.com/awesome-selfhosted/awesome-selfhosted/issues?q=is%3Aissue+is%3Aopen+label%3Afix).
|
||||
|
377
docs/Info/LICENSE.md
Normal file
377
docs/Info/LICENSE.md
Normal file
|
@ -0,0 +1,377 @@
|
|||
# License
|
||||
`CC-BY-SA-3.0
|
||||
Creative Commons Attribution-ShareAlike 3.0 Unported
|
||||
.
|
||||
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
|
||||
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION
|
||||
ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE
|
||||
INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
|
||||
ITS USE.
|
||||
.
|
||||
License
|
||||
.
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
.
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
|
||||
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
|
||||
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
|
||||
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
|
||||
CONDITIONS.
|
||||
.
|
||||
1. Definitions
|
||||
.
|
||||
a. "Adaptation" means a work based upon the Work, or upon the Work and
|
||||
other pre-existing works, such as a translation, adaptation, derivative
|
||||
work, arrangement of music or other alterations of a literary or
|
||||
artistic work, or phonogram or performance and includes cinematographic
|
||||
adaptations or any other form in which the Work may be recast,
|
||||
transformed, or adapted including in any form recognizably derived from
|
||||
the original, except that a work that constitutes a Collection will not
|
||||
be considered an Adaptation for the purpose of this License. For the
|
||||
avoidance of doubt, where the Work is a musical work, performance or
|
||||
phonogram, the synchronization of the Work in timed-relation with a
|
||||
moving image ("synching") will be considered an Adaptation for the
|
||||
purpose of this License.
|
||||
.
|
||||
b. "Collection" means a collection of literary or artistic works, such
|
||||
as encyclopedias and anthologies, or performances, phonograms or
|
||||
broadcasts, or other works or subject matter other than works listed in
|
||||
Section 1(f) below, which, by reason of the selection and arrangement of
|
||||
their contents, constitute intellectual creations, in which the Work is
|
||||
included in its entirety in unmodified form along with one or more other
|
||||
contributions, each constituting separate and independent works in
|
||||
themselves, which together are assembled into a collective whole. A work
|
||||
that constitutes a Collection will not be considered an Adaptation (as
|
||||
defined below) for the purposes of this License.
|
||||
.
|
||||
c. "Creative Commons Compatible License" means a license that is listed
|
||||
at http://creativecommons.org/compatiblelicenses that has been approved
|
||||
by Creative Commons as being essentially equivalent to this License,
|
||||
including, at a minimum, because that license: (i) contains terms that
|
||||
have the same purpose, meaning and effect as the License Elements of
|
||||
this License; and, (ii) explicitly permits the relicensing of
|
||||
adaptations of works made available under that license under this
|
||||
License or a Creative Commons jurisdiction license with the same License
|
||||
Elements as this License.
|
||||
.
|
||||
d. "Distribute" means to make available to the public the original and
|
||||
copies of the Work or Adaptation, as appropriate, through sale or other
|
||||
transfer of ownership.
|
||||
.
|
||||
e. "License Elements" means the following high-level license attributes
|
||||
as selected by Licensor and indicated in the title of this License:
|
||||
Attribution, ShareAlike.
|
||||
.
|
||||
f. "Licensor" means the individual, individuals, entity or entities that
|
||||
offer(s) the Work under the terms of this License.
|
||||
.
|
||||
g. "Original Author" means, in the case of a literary or artistic work,
|
||||
the individual, individuals, entity or entities who created the Work or
|
||||
if no individual or entity can be identified, the publisher; and in
|
||||
addition (i) in the case of a performance the actors, singers,
|
||||
musicians, dancers, and other persons who act, sing, deliver, declaim,
|
||||
play in, interpret or otherwise perform literary or artistic works or
|
||||
expressions of folklore; (ii) in the case of a phonogram the producer
|
||||
being the person or legal entity who first fixes the sounds of a
|
||||
performance or other sounds; and, (iii) in the case of broadcasts, the
|
||||
organization that transmits the broadcast.
|
||||
.
|
||||
h. "Work" means the literary and/or artistic work offered under the
|
||||
terms of this License including without limitation any production in the
|
||||
literary, scientific and artistic domain, whatever may be the mode or
|
||||
form of its expression including digital form, such as a book, pamphlet
|
||||
and other writing; a lecture, address, sermon or other work of the same
|
||||
nature; a dramatic or dramatico-musical work; a choreographic work or
|
||||
entertainment in dumb show; a musical composition with or without words;
|
||||
a cinematographic work to which are assimilated works expressed by a
|
||||
process analogous to cinematography; a work of drawing, painting,
|
||||
architecture, sculpture, engraving or lithography; a photographic work
|
||||
to which are assimilated works expressed by a process analogous to
|
||||
photography; a work of applied art; an illustration, map, plan, sketch
|
||||
or three-dimensional work relative to geography, topography,
|
||||
architecture or science; a performance; a broadcast; a phonogram; a
|
||||
compilation of data to the extent it is protected as a copyrightable
|
||||
work; or a work performed by a variety or circus performer to the extent
|
||||
it is not otherwise considered a literary or artistic work.
|
||||
.
|
||||
i. "You" means an individual or entity exercising rights under this
|
||||
License who has not previously violated the terms of this License with
|
||||
respect to the Work, or who has received express permission from the
|
||||
Licensor to exercise rights under this License despite a previous
|
||||
violation.
|
||||
.
|
||||
j. "Publicly Perform" means to perform public recitations of the Work
|
||||
and to communicate to the public those public recitations, by any means
|
||||
or process, including by wire or wireless means or public digital
|
||||
performances; to make available to the public Works in such a way that
|
||||
members of the public may access these Works from a place and at a place
|
||||
individually chosen by them; to perform the Work to the public by any
|
||||
means or process and the communication to the public of the performances
|
||||
of the Work, including by public digital performance; to broadcast and
|
||||
rebroadcast the Work by any means including signs, sounds or images.
|
||||
.
|
||||
k. "Reproduce" means to make copies of the Work by any means including
|
||||
without limitation by sound or visual recordings and the right of
|
||||
fixation and reproducing fixations of the Work, including storage of a
|
||||
protected performance or phonogram in digital form or other electronic
|
||||
medium.
|
||||
.
|
||||
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
|
||||
limit, or restrict any uses free from copyright or rights arising from
|
||||
limitations or exceptions that are provided for in connection with the
|
||||
copyright protection under copyright law or other applicable laws.
|
||||
.
|
||||
3. License Grant. Subject to the terms and conditions of this License,
|
||||
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
|
||||
perpetual (for the duration of the applicable copyright) license to
|
||||
exercise the rights in the Work as stated below:
|
||||
.
|
||||
a. to Reproduce the Work, to incorporate the Work into one or more
|
||||
Collections, and to Reproduce the Work as incorporated in the
|
||||
Collections;
|
||||
.
|
||||
b. to create and Reproduce Adaptations provided that any such
|
||||
Adaptation, including any translation in any medium, takes reasonable
|
||||
steps to clearly label, demarcate or otherwise identify that changes
|
||||
were made to the original Work. For example, a translation could be
|
||||
marked "The original work was translated from English to Spanish," or a
|
||||
modification could indicate "The original work has been modified.";
|
||||
.
|
||||
c. to Distribute and Publicly Perform the Work including as incorporated
|
||||
in Collections; and,
|
||||
.
|
||||
d. to Distribute and Publicly Perform Adaptations.
|
||||
.
|
||||
e. For the avoidance of doubt:
|
||||
.
|
||||
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
|
||||
which the right to collect royalties through any statutory or compulsory
|
||||
licensing scheme cannot be waived, the Licensor reserves the exclusive
|
||||
right to collect such royalties for any exercise by You of the rights
|
||||
granted under this License;
|
||||
.
|
||||
ii. Waivable Compulsory License Schemes. In those jurisdictions in which
|
||||
the right to collect royalties through any statutory or compulsory
|
||||
licensing scheme can be waived, the Licensor waives the exclusive right
|
||||
to collect such royalties for any exercise by You of the rights granted
|
||||
under this License; and,
|
||||
.
|
||||
iii. Voluntary License Schemes. The Licensor waives the right to collect
|
||||
royalties, whether individually or, in the event that the Licensor is a
|
||||
member of a collecting society that administers voluntary licensing
|
||||
schemes, via that society, from any exercise by You of the rights
|
||||
granted under this License.
|
||||
.
|
||||
The above rights may be exercised in all media and formats whether now
|
||||
known or hereafter devised. The above rights include the right to make
|
||||
such modifications as are technically necessary to exercise the rights
|
||||
in other media and formats. Subject to Section 8(f), all rights not
|
||||
expressly granted by Licensor are hereby reserved.
|
||||
.
|
||||
4. Restrictions. The license granted in Section 3 above is expressly
|
||||
made subject to and limited by the following restrictions:
|
||||
.
|
||||
a. You may Distribute or Publicly Perform the Work only under the terms
|
||||
of this License. You must include a copy of, or the Uniform Resource
|
||||
Identifier (URI) for, this License with every copy of the Work You
|
||||
Distribute or Publicly Perform. You may not offer or impose any terms on
|
||||
the Work that restrict the terms of this License or the ability of the
|
||||
recipient of the Work to exercise the rights granted to that recipient
|
||||
under the terms of the License. You may not sublicense the Work. You
|
||||
must keep intact all notices that refer to this License and to the
|
||||
disclaimer of warranties with every copy of the Work You Distribute or
|
||||
Publicly Perform. When You Distribute or Publicly Perform the Work, You
|
||||
may not impose any effective technological measures on the Work that
|
||||
restrict the ability of a recipient of the Work from You to exercise the
|
||||
rights granted to that recipient under the terms of the License. This
|
||||
Section 4(a) applies to the Work as incorporated in a Collection, but
|
||||
this does not require the Collection apart from the Work itself to be
|
||||
made subject to the terms of this License. If You create a Collection,
|
||||
upon notice from any Licensor You must, to the extent practicable,
|
||||
remove from the Collection any credit as required by Section 4(c), as
|
||||
requested. If You create an Adaptation, upon notice from any Licensor
|
||||
You must, to the extent practicable, remove from the Adaptation any
|
||||
credit as required by Section 4(c), as requested.
|
||||
.
|
||||
b. You may Distribute or Publicly Perform an Adaptation only under the
|
||||
terms of: (i) this License; (ii) a later version of this License with
|
||||
the same License Elements as this License; (iii) a Creative Commons
|
||||
jurisdiction license (either this or a later license version) that
|
||||
contains the same License Elements as this License (e.g.,
|
||||
Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible
|
||||
License. If you license the Adaptation under one of the licenses
|
||||
mentioned in (iv), you must comply with the terms of that license. If
|
||||
you license the Adaptation under the terms of any of the licenses
|
||||
mentioned in (i), (ii) or (iii) (the "Applicable License"), you must
|
||||
comply with the terms of the Applicable License generally and the
|
||||
following provisions: (I) You must include a copy of, or the URI for,
|
||||
the Applicable License with every copy of each Adaptation You Distribute
|
||||
or Publicly Perform; (II) You may not offer or impose any terms on the
|
||||
Adaptation that restrict the terms of the Applicable License or the
|
||||
ability of the recipient of the Adaptation to exercise the rights
|
||||
granted to that recipient under the terms of the Applicable License;
|
||||
(III) You must keep intact all notices that refer to the Applicable
|
||||
License and to the disclaimer of warranties with every copy of the Work
|
||||
as included in the Adaptation You Distribute or Publicly Perform; (IV)
|
||||
when You Distribute or Publicly Perform the Adaptation, You may not
|
||||
impose any effective technological measures on the Adaptation that
|
||||
restrict the ability of a recipient of the Adaptation from You to
|
||||
exercise the rights granted to that recipient under the terms of the
|
||||
Applicable License. This Section 4(b) applies to the Adaptation as
|
||||
incorporated in a Collection, but this does not require the Collection
|
||||
apart from the Adaptation itself to be made subject to the terms of the
|
||||
Applicable License.
|
||||
.
|
||||
c. If You Distribute, or Publicly Perform the Work or any Adaptations or
|
||||
Collections, You must, unless a request has been made pursuant to
|
||||
Section 4(a), keep intact all copyright notices for the Work and
|
||||
provide, reasonable to the medium or means You are utilizing: (i) the
|
||||
name of the Original Author (or pseudonym, if applicable) if supplied,
|
||||
and/or if the Original Author and/or Licensor designate another party or
|
||||
parties (e.g., a sponsor institute, publishing entity, journal) for
|
||||
attribution ("Attribution Parties") in Licensor's copyright notice,
|
||||
terms of service or by other reasonable means, the name of such party or
|
||||
parties; (ii) the title of the Work if supplied; (iii) to the extent
|
||||
reasonably practicable, the URI, if any, that Licensor specifies to be
|
||||
associated with the Work, unless such URI does not refer to the
|
||||
copyright notice or licensing information for the Work; and (iv) ,
|
||||
consistent with Ssection 3(b), in the case of an Adaptation, a credit
|
||||
identifying the use of the Work in the Adaptation (e.g., "French
|
||||
translation of the Work by Original Author," or "Screenplay based on
|
||||
original Work by Original Author"). The credit required by this Section
|
||||
4(c) may be implemented in any reasonable manner; provided, however,
|
||||
that in the case of a Adaptation or Collection, at a minimum such credit
|
||||
will appear, if a credit for all contributing authors of the Adaptation
|
||||
or Collection appears, then as part of these credits and in a manner at
|
||||
least as prominent as the credits for the other contributing authors.
|
||||
For the avoidance of doubt, You may only use the credit required by this
|
||||
Section for the purpose of attribution in the manner set out above and,
|
||||
by exercising Your rights under this License, You may not implicitly or
|
||||
explicitly assert or imply any connection with, sponsorship or
|
||||
endorsement by the Original Author, Licensor and/or Attribution Parties,
|
||||
as appropriate, of You or Your use of the Work, without the separate,
|
||||
express prior written permission of the Original Author, Licensor and/or
|
||||
Attribution Parties.
|
||||
.
|
||||
d. Except as otherwise agreed in writing by the Licensor or as may be
|
||||
otherwise permitted by applicable law, if You Reproduce, Distribute or
|
||||
Publicly Perform the Work either by itself or as part of any Adaptations
|
||||
or Collections, You must not distort, mutilate, modify or take other
|
||||
derogatory action in relation to the Work which would be prejudicial to
|
||||
the Original Author's honor or reputation. Licensor agrees that in those
|
||||
jurisdictions (e.g. Japan), in which any exercise of the right granted
|
||||
in Section 3(b) of this License (the right to make Adaptations) would be
|
||||
deemed to be a distortion, mutilation, modification or other derogatory
|
||||
action prejudicial to the Original Author's honor and reputation, the
|
||||
Licensor will waive or not assert, as appropriate, this Section, to the
|
||||
fullest extent permitted by the applicable national law, to enable You
|
||||
to reasonably exercise Your right under Section 3(b) of this License
|
||||
(right to make Adaptations) but not otherwise.
|
||||
.
|
||||
5. Representations, Warranties and Disclaimer
|
||||
.
|
||||
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
|
||||
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
|
||||
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
|
||||
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
|
||||
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
|
||||
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||
EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
|
||||
.
|
||||
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
|
||||
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
|
||||
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
|
||||
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
|
||||
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
.
|
||||
7. Termination
|
||||
.
|
||||
a. This License and the rights granted hereunder will terminate
|
||||
automatically upon any breach by You of the terms of this License.
|
||||
Individuals or entities who have received Adaptations or Collections
|
||||
from You under this License, however, will not have their licenses
|
||||
terminated provided such individuals or entities remain in full
|
||||
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
|
||||
survive any termination of this License.
|
||||
.
|
||||
b. Subject to the above terms and conditions, the license granted here
|
||||
is perpetual (for the duration of the applicable copyright in the Work).
|
||||
Notwithstanding the above, Licensor reserves the right to release the
|
||||
Work under different license terms or to stop distributing the Work at
|
||||
any time; provided, however that any such election will not serve to
|
||||
withdraw this License (or any other license that has been, or is
|
||||
required to be, granted under the terms of this License), and this
|
||||
License will continue in full force and effect unless terminated as
|
||||
stated above.
|
||||
.
|
||||
8. Miscellaneous
|
||||
.
|
||||
a. Each time You Distribute or Publicly Perform the Work or a
|
||||
Collection, the Licensor offers to the recipient a license to the Work
|
||||
on the same terms and conditions as the license granted to You under
|
||||
this License.
|
||||
.
|
||||
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
|
||||
offers to the recipient a license to the original Work on the same terms
|
||||
and conditions as the license granted to You under this License.
|
||||
.
|
||||
c. If any provision of this License is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this License, and without further action
|
||||
by the parties to this agreement, such provision shall be reformed to
|
||||
the minimum extent necessary to make such provision valid and
|
||||
enforceable.
|
||||
.
|
||||
d. No term or provision of this License shall be deemed waived and no
|
||||
breach consented to unless such waiver or consent shall be in writing
|
||||
and signed by the party to be charged with such waiver or consent.
|
||||
.
|
||||
e. This License constitutes the entire agreement between the parties
|
||||
with respect to the Work licensed here. There are no understandings,
|
||||
agreements or representations with respect to the Work not specified
|
||||
here. Licensor shall not be bound by any additional provisions that may
|
||||
appear in any communication from You. This License may not be modified
|
||||
without the mutual written agreement of the Licensor and You.
|
||||
.
|
||||
f. The rights granted under, and the subject matter referenced, in this
|
||||
License were drafted utilizing the terminology of the Berne Convention
|
||||
for the Protection of Literary and Artistic Works (as amended on
|
||||
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
|
||||
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and
|
||||
the Universal Copyright Convention (as revised on July 24, 1971). These
|
||||
rights and subject matter take effect in the relevant jurisdiction in
|
||||
which the License terms are sought to be enforced according to the
|
||||
corresponding provisions of the implementation of those treaty
|
||||
provisions in the applicable national law. If the standard suite of
|
||||
rights granted under applicable copyright law includes additional rights
|
||||
not granted under this License, such additional rights are deemed to be
|
||||
included in the License; this License is not intended to restrict the
|
||||
license of any rights under applicable law.
|
||||
.
|
||||
Creative Commons Notice
|
||||
.
|
||||
Creative Commons is not a party to this License, and makes no warranty
|
||||
whatsoever in connection with the Work. Creative Commons will not be
|
||||
liable to You or any party on any legal theory for any damages
|
||||
whatsoever, including without limitation any general, special,
|
||||
incidental or consequential damages arising in connection to this
|
||||
license. Notwithstanding the foregoing two (2) sentences, if Creative
|
||||
Commons has expressly identified itself as the Licensor hereunder, it
|
||||
shall have all rights and obligations of Licensor.
|
||||
.
|
||||
Except for the limited purpose of indicating to the public that the Work
|
||||
is licensed under the CCPL, Creative Commons does not authorize the use
|
||||
by either party of the trademark "Creative Commons" or any related
|
||||
trademark or logo of Creative Commons without the prior written consent
|
||||
of Creative Commons. Any permitted use will be in compliance with
|
||||
Creative Commons' then-current trademark usage guidelines, as may be
|
||||
published on its website or otherwise made available upon request from
|
||||
time to time. For the avoidance of doubt, this trademark restriction
|
||||
does not form part of the License.
|
||||
.
|
||||
Creative Commons may be contacted at http://creativecommons.org/.`
|
52
docs/Makefile
Normal file
52
docs/Makefile
Normal file
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/make -f
|
||||
SHELL = /bin/bash
|
||||
AWESOME_BOT_OPTIONS = --allow-redirect --skip-save-results --allow 202 --white-list airsonic.github.io/docs/apps
|
||||
|
||||
all: check_all
|
||||
|
||||
# run all checks
|
||||
check_all: check_syntax_full awesome_bot check_github_commit_dates
|
||||
|
||||
# check pull requests
|
||||
check_pr: check_syntax_diff
|
||||
|
||||
# check syntax in whole file
|
||||
check_syntax_full:
|
||||
node tests/test.js -r README.md
|
||||
|
||||
# check syntax in the diff from master to current branch
|
||||
check_syntax_diff:
|
||||
git diff origin/master -U0 README.md | grep --perl-regexp --only-matching "(?<=^\+).*" >> temp.md && \
|
||||
node tests/test.js -r README.md -d temp.md && \
|
||||
awesome_bot -f temp.md $(AWESOME_BOT_OPTIONS)
|
||||
|
||||
# check dead links
|
||||
# https://github.com/dkhamsing/awesome_bot
|
||||
awesome_bot:
|
||||
awesome_bot -f README.md $(AWESOME_BOT_OPTIONS)
|
||||
|
||||
# check date of last commit for github.com repository URLs
|
||||
check_github_commit_dates:
|
||||
pip3 install PyGithub
|
||||
python3 tests/check-github-commit-dates.py
|
||||
|
||||
#################################
|
||||
|
||||
# update the AUTHORS.md file
|
||||
contrib:
|
||||
@mv .github/.mailmap . && printf "|Commits | Author |\n| :---: | --- |\n" > AUTHORS.md && git shortlog -sne | sed -r 's/^\s*([[:digit:]]*?)\s*?(.*?)/|\1|\2|/' >> AUTHORS.md && mv .mailmap .github/.mailmap
|
||||
|
||||
# add a new entry
|
||||
add:
|
||||
@read -r -p "Software name: " Name && [[ ! -z "$$Name" ]] && \
|
||||
read -r -p "Homepage/URL: " Url && [[ ! -z "$$Url" ]] && \
|
||||
read -r -p "Description (max 250 characters, ending with .): " Description && [[ ! -z "$$Description" ]] && \
|
||||
read -r -p "License: " License && [[ ! -z "$$License" ]] && \
|
||||
read -r -p "Main server-side language/platform/requirement: " Language && [[ ! -z "$$Language" ]] && \
|
||||
read -r -p "Demo URL (optional,leave empty): " Demo && \
|
||||
if [[ "$$Demo" == "" ]]; then CDemo=""; else CDemo="[Demo]($$Demo)"; fi; \
|
||||
read -r -p "Source code URL (if different from homepage): " Source && \
|
||||
if [[ "$$Source" == "" ]]; then CSource=""; else CSource="[Source Code]($$Source)"; fi; \
|
||||
if [[ "$$CSource" == "" && "$$Demo" == "" ]]; then Moreinfo=""; else Moreinfo="($$CDemo $$CSource)"; fi; \
|
||||
echo "Copy this entry to your clipboard, paste it in the appropriate category:" ;\
|
||||
echo "- [$$Name]($$Url) - $${Description} $${Moreinfo} \`$$License\` \`$$Language\`"
|
16
docs/_coverpage.md
Normal file
16
docs/_coverpage.md
Normal file
|
@ -0,0 +1,16 @@
|
|||

|
||||
|
||||
# Awesome Selfhosted
|
||||
|
||||
> This is a list of [Free](https://en.wikipedia.org/wiki/Free_software) Software [network services](https://en.wikipedia.org/wiki/Network_service) and [web applications](https://en.wikipedia.org/wiki/Web_application)<br><br> which can be
|
||||
hosted locally.
|
||||
|
||||
|
||||
- Non-Free software is listed on the [Non-Free](non-free.md) page.
|
||||
|
||||
- Docs Page by Humzaa Omar
|
||||
|
||||
[GitHub](https://github.com/awesome-selfhosted/awesome-selfhosted)
|
||||
[Reddit](https://reddit.com/r/selfhosted)
|
||||
[Non-Free](non-free.md)
|
||||
[Free](#Awesome-Selfhosted)
|
BIN
docs/img/selfhosted.png
Normal file
BIN
docs/img/selfhosted.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.4 KiB |
26
docs/index.html
Normal file
26
docs/index.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Awesome Selfhosted</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<meta name="description" content="Description">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/lib/themes/vue.css">
|
||||
<link rel="icon" type="image/png" href="./img/selfhosted.png">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script>
|
||||
window.$docsify = {
|
||||
name: 'Awesome-Selfhosted',
|
||||
repo: 'https://github.com/awesome-selfhosted/awesome-selfhosted',
|
||||
coverpage: true,
|
||||
coverpage: '_coverpage.md',
|
||||
basePath:
|
||||
'https://raw.githubusercontent.com/awesome-selfhosted/awesome-selfhosted/master/'
|
||||
};
|
||||
</script>
|
||||
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
|
||||
</body>
|
||||
</html>
|
1
docs/test.md
Normal file
1
docs/test.md
Normal file
|
@ -0,0 +1 @@
|
|||
@import "https://raw.githubusercontent.com/awesome-selfhosted/awesome-selfhosted/master/non-free.md"
|
39
docs/tests/Dangerfile
Normal file
39
docs/tests/Dangerfile
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Danger CI configuration file
|
||||
# https://danger.systems/guides/getting_started.html
|
||||
|
||||
# Check for changes to README.md
|
||||
has_readme_changes = git.modified_files.include?("README.md")
|
||||
|
||||
# Ensure there is a summary for a pull request
|
||||
fail 'Please provide a summary in the Pull Request description' if github.pr_body.length < 5
|
||||
|
||||
# Warn if PR guideline boxes are not checked.
|
||||
warn 'Please check PR guidelines and check the boxes.' if github.pr_body.include? '- [ ]'
|
||||
|
||||
# Warn if pull request is not updated
|
||||
warn 'Please provide a descriptive title for the Pull Request' if github.pr_title.include? 'Update README.md'
|
||||
|
||||
# Warn when there are merge commits in the diff
|
||||
warn 'Please rebase to get rid of the merge commits in this Pull Request' if git.commits.any? { |c| c.message =~ /^Merge branch 'master'/ }
|
||||
|
||||
# Check links
|
||||
if has_readme_changes
|
||||
require 'json'
|
||||
results = File.read 'ab-results-temp.md-markdown-table.json'
|
||||
j = JSON.parse results
|
||||
if j['error']==true
|
||||
warn j['title']
|
||||
markdown j['message']
|
||||
end
|
||||
end
|
||||
|
||||
# Check syntax
|
||||
if has_readme_changes
|
||||
require 'json'
|
||||
syntaxresults = File.read 'syntaxcheck.json'
|
||||
sj = JSON.parse syntaxresults
|
||||
if sj['error']==true
|
||||
fail sj['title']
|
||||
markdown sj['message']
|
||||
end
|
||||
end
|
60
docs/tests/check-github-commit-dates.py
Normal file
60
docs/tests/check-github-commit-dates.py
Normal file
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
""" A script to find github repo links and last commit dates in a markdown file
|
||||
|
||||
Requirements:
|
||||
- python3 github module (sudo apt install python3-github on Debian)
|
||||
- A personal access token (https://github.com/settings/tokens)
|
||||
|
||||
Usage:
|
||||
- Run awesome_bot --allow-redirect -f README.md beforehand to detect any error(4xx, 5xx) that would
|
||||
cause the script to abort
|
||||
- Github API calls are limited to 5000 requests/hour https://developer.github.com/v3/#rate-limiting
|
||||
- Put the token in your environment variables:
|
||||
export GITHUB_TOKEN=18c45f8d8d556492d1d877998a5b311b368a76e4
|
||||
- The output is unsorted, just pipe it through 'sort' or paste it in your editor and sort from there
|
||||
- Put the script in your crontab or run it from time to time. It doesn't make sense to add this
|
||||
script to the CI job that runs every time something is pushed.
|
||||
- To detect no-commit related activity (repo metadata changes, wiki edits, ...), replace pushed_at
|
||||
with updated_at
|
||||
|
||||
"""
|
||||
|
||||
from github import Github
|
||||
import sys
|
||||
import time
|
||||
import re
|
||||
import os
|
||||
|
||||
__author__ = "nodiscc"
|
||||
__copyright__ = "Copyright 2019, nodiscc"
|
||||
__credits__ = ["https://github.com/awesome-selfhosted/awesome-selfhosted"]
|
||||
__license__ = "MIT"
|
||||
__version__ = "1.0"
|
||||
__maintainer__ = "nodiscc"
|
||||
__email__ = "nodiscc@gmail.com"
|
||||
__status__ = "Production"
|
||||
|
||||
###############################################################################
|
||||
|
||||
access_token = os.environ['GITHUB_TOKEN']
|
||||
|
||||
""" find all URLs of the form https://github.com/owner/repo """
|
||||
with open('README.md', 'r') as readme:
|
||||
data = readme.read()
|
||||
project_urls = re.findall('https://github.com/[A-z]*/[A-z|0-9|\-|_|\.]+', data)
|
||||
|
||||
urls = sorted(set(project_urls))
|
||||
|
||||
""" Uncomment this to debug the list of matched URLs """
|
||||
# print(str(urls))
|
||||
# exit(0)
|
||||
|
||||
""" login to github API """
|
||||
g = Github(access_token)
|
||||
|
||||
""" load project metadata, output last commit date and URL """
|
||||
for url in urls:
|
||||
project = re.sub('https://github.com/', '', url)
|
||||
repo = g.get_repo(project)
|
||||
print(str(repo.pushed_at) + ' https://github.com/' + project)
|
251
docs/tests/test.js
Normal file
251
docs/tests/test.js
Normal file
|
@ -0,0 +1,251 @@
|
|||
// USAGE:
|
||||
// node test.js -r README.md (Checks whole file)
|
||||
// node test.js -r README.md -d temp.md (Checks just the diff)
|
||||
|
||||
const fs = require('fs');
|
||||
const chalk = require('chalk');
|
||||
let licenses = new Set();
|
||||
let pr = false;
|
||||
let readme;
|
||||
let diff;
|
||||
|
||||
//Parse the command options and set the pr var
|
||||
function parseArgs(args) {
|
||||
if ( args.indexOf('-r', 2) > 0 ) {
|
||||
readme = fs.readFileSync(args[args.indexOf('-r', 2)+1], 'utf8')
|
||||
}
|
||||
if (args.indexOf('-d', 2) > 0) {
|
||||
pr = true;
|
||||
diff = fs.readFileSync(args[args.indexOf('-d', 2)+1], 'utf8');
|
||||
}
|
||||
if ( pr === true) {
|
||||
console.log(chalk.blue(`Running on PR. README.md: ${args[args.indexOf('-r', 2)+1]} diff: ${args[args.indexOf('-d', 2)+1]}`))
|
||||
}
|
||||
}
|
||||
|
||||
// Function to find lines with entries
|
||||
function entryFilter(md) {
|
||||
const linepatt = /^\s{0,2}-\s\[.*`/;
|
||||
return linepatt.test(md);
|
||||
}
|
||||
|
||||
// Function to find lines with licenses
|
||||
function licenseFilter(md) {
|
||||
const linepatt = /^- `.*` - .*/;
|
||||
return linepatt.test(md)
|
||||
}
|
||||
|
||||
// Function to split lines into array
|
||||
function split(text) {
|
||||
return text.split(/\r?\n/);
|
||||
}
|
||||
|
||||
// All entries should match this pattern. If matches pattern returns true.
|
||||
function findPattern(text) {
|
||||
const patt = /^\s{0,2}-\s\[.*?\]\(.*?\) (`⚠` )?- .{0,249}?\.( \(\[(Demo|Source Code|Clients)\]\([^)\]]*\)(, \[(Source Code|Clients)\]\([^)\]]*\))?(, \[(Source Code|Clients)\]\([^)\]]*\))*\))? \`.*?\` \`.*?\`$/;
|
||||
if (patt.test(text) === true) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Parses SPDX identifiers from list of licenses
|
||||
function parseLicense(md) {
|
||||
const patt = /^- `(.*)` - .*/
|
||||
return patt.exec(md)[1]
|
||||
}
|
||||
|
||||
//Test '- [Name](http://homepage/)'
|
||||
function testMainLink(text) {
|
||||
let testA = /(^ {0,2}- \[.*?\]\([^)]*\.[^)]*?\))(?=\ ?\-?\ ?\w)/ // /(^ {0,2}- \[.*?\]\(.*\))(?=.?-? ?\w)/;
|
||||
const testA1 = /(- \W?\w*\W{0,2}.*?\)?)( .*$)/;
|
||||
if (!testA.test(text)) {
|
||||
let a1 = testA1.exec(text)[2];
|
||||
return chalk.red(text.replace(a1, ''))
|
||||
}
|
||||
return chalk.green(testA.exec(text)[1])
|
||||
}
|
||||
|
||||
//Test '`⚠` - Short description, less than 250 characters.'
|
||||
function testDescription(text) {
|
||||
const testB = /( - .*\. )(?:(\(?\[?|\`))/;
|
||||
const testA1 = /(- \W?\w*\W{0,2}.*?\)?)( .*$)/;
|
||||
const testB2 = /((\(\[|\`).*$)/;
|
||||
if (!testB.test(text)) {
|
||||
let b1 = testA1.exec(text)[1];
|
||||
let b2 = testB2.exec(text)[1];
|
||||
return chalk.red(text.replace(b1, '').replace(b2, ''))
|
||||
}
|
||||
return chalk.green(testB.exec(text)[1])
|
||||
}
|
||||
|
||||
//If present, tests '([Demo](http://url.to/demo), [Source Code](http://url.of/source/code), [Clients](https://url.to/list/of/related/clients-or-apps))'
|
||||
function testSrcDemCli(text) {
|
||||
let testC = text.search(/\.\ \(|\.\ \[|\ \(\[[sSdDcC]/); // /\(\[|\)\,|\)\)/);
|
||||
let testD = /(?<=\w. )(\(\[(Demo|Source Code|Clients)\]\([^)\]]*\)(, \[(Source Code|Clients)\]\([^)\]]*\))?(, \[(Source Code|Clients)\]\([^)\]]*\))*\))(?= \`?)/;
|
||||
const testD1 = /(^- \W[a-zA-Z0-9-_ .]*\W{0,2}http[^\[]*)(?<= )/;
|
||||
const testD2 = /(\`.*\` \`.*\`$)/;
|
||||
if ((testC > -1) && (!testD.test(text))) {
|
||||
let d1 = testD1.exec(text)[1];
|
||||
let d2 = testD2.exec(text)[1];
|
||||
return chalk.red(text.replace(d1, '').replace(d2, ''))
|
||||
} else if (testC > -1) {
|
||||
return chalk.green(testD.exec(text)[1])
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// Tests '`License` `Language`'
|
||||
function testLangLic(text) {
|
||||
const testD2 = /(\`.*\` \`.*\`$)/;
|
||||
let testE = testD2.test(text);
|
||||
const testE1 = /(^[^`]*)/;
|
||||
if (!testE) {
|
||||
let e1 = testE1.exec(text)[1];
|
||||
return chalk.red(text.replace(e1, ''))
|
||||
}
|
||||
return chalk.green(testD2.exec(text)[1])
|
||||
}
|
||||
|
||||
//Runs all the syntax tests...
|
||||
function findError(text) {
|
||||
let res
|
||||
res = testMainLink(text)
|
||||
res += testDescription(text)
|
||||
res += testSrcDemCli(text)
|
||||
res += testLangLic(text)
|
||||
return res + `\n`
|
||||
}
|
||||
|
||||
//Check if license is in the list of licenses.
|
||||
function testLicense(md) {
|
||||
let pass = true;
|
||||
let lFailed = []
|
||||
let lPassed = []
|
||||
const regex = /.*\`(.*)\` .*$/;
|
||||
try {
|
||||
for (l of regex.exec(md)[1].split("/")) {
|
||||
if (!licenses.has(l)) {
|
||||
pass = false;
|
||||
lPassed.push(l)
|
||||
}
|
||||
lFailed.push(l)
|
||||
}
|
||||
}
|
||||
catch(err) {
|
||||
console.log(chalk.yellow("Error in License syntax, license not checked against list."))
|
||||
return [false, "", ""]
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return [pass, lFailed, lPassed]
|
||||
}
|
||||
|
||||
|
||||
//Parses name from entry
|
||||
function parseName(md) {
|
||||
const regex = /^\W*(.*?)\W/
|
||||
return regex.exec(md)[1]
|
||||
}
|
||||
|
||||
function entryErrorCheck() {
|
||||
const lines = split(readme); // Inserts each line into the entries array
|
||||
let totalFail = 0;
|
||||
let totalPass = 0;
|
||||
let total = 0;
|
||||
let entries = [];
|
||||
let diffEntries = [];
|
||||
|
||||
if (lines[0] === "") {
|
||||
console.log(chalk.red("0 Entries Found, check your commandline arguments"))
|
||||
process.exit(0)
|
||||
}
|
||||
for (let i = 0; i < lines.length; i ++) { // Loop through array of lines
|
||||
if (entryFilter(lines[i]) === true) { // filter out lines that don't start with * [)
|
||||
e = {};
|
||||
e.raw = lines[i];
|
||||
e.line = i + 1
|
||||
entries.push(e);
|
||||
} else if (licenseFilter(lines[i]) === true) {
|
||||
licenses.add(parseLicense(lines[i]))
|
||||
}
|
||||
}
|
||||
|
||||
if (pr === true) {
|
||||
console.log(chalk.cyan("Only testing the diff from the PR.\n"))
|
||||
const diffLines = split(diff); // Inserts each line of diff into an array
|
||||
for (let l of diffLines) {
|
||||
if (entryFilter(l) === true) { // filter out lines that don't start with * [)
|
||||
e = {};
|
||||
e.raw = l;
|
||||
diffEntries.push(e);
|
||||
} else if (licenseFilter(l) === true) {
|
||||
licenses.add(parseLicense(l))
|
||||
}
|
||||
}
|
||||
if (diffEntries.length === 0) {
|
||||
console.log("No entries changed in README.md, Exiting...")
|
||||
process.exit(0)
|
||||
}
|
||||
total = diffEntries.length
|
||||
for (let e of diffEntries) {
|
||||
e.pass = true
|
||||
e.name = parseName(e.raw)
|
||||
if (!findPattern(e.raw)) {
|
||||
e.highlight = findError(e.raw);
|
||||
e.pass = false;
|
||||
console.log(e.highlight)
|
||||
}
|
||||
e.licenseTest = testLicense(e.raw);
|
||||
if (!e.licenseTest) {
|
||||
e.pass = false;
|
||||
console.log(chalk.red(`${e.name}'s license is not on License list.`))
|
||||
}
|
||||
if (e.pass) {
|
||||
totalPass++
|
||||
} else {
|
||||
totalFail++
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log(chalk.cyan("Testing entire README.md\n"))
|
||||
total = entries.length
|
||||
for (let e of entries) {
|
||||
e.pass = true
|
||||
e.name = parseName(e.raw)
|
||||
if (!findPattern(e.raw)) {
|
||||
e.highlight = findError(e.raw);
|
||||
e.pass = false;
|
||||
console.log(`${chalk.yellow(e.line + ": ")}${e.highlight}`);
|
||||
syntax = e.highlight;
|
||||
}
|
||||
e.licenseTest = testLicense(e.raw);
|
||||
if (!e.licenseTest[0]) {
|
||||
e.pass = false;
|
||||
console.log(chalk.yellow(e.line + ": ") + `${e.name}'s license ${chalk.red(`'${e.licenseTest[1]}'`)} is not on the License list.\n`)
|
||||
}
|
||||
if (e.pass) {
|
||||
totalPass++
|
||||
} else {
|
||||
totalFail++
|
||||
}
|
||||
}
|
||||
}
|
||||
if (totalFail > 0) {
|
||||
console.log(chalk.blue(`\n-----------------------------\n`))
|
||||
console.log(chalk.red(`${totalFail} Failed, `) + chalk.green(`${totalPass} Passed, `) + chalk.blue(`of ${total}`))
|
||||
console.log(chalk.blue(`\n-----------------------------\n`))
|
||||
process.exit(1);
|
||||
} else {
|
||||
console.log(chalk.blue(`\n-----------------------------\n`))
|
||||
console.log(chalk.green(`${totalPass} Passed of ${total}`))
|
||||
console.log(chalk.blue(`\n-----------------------------\n`))
|
||||
process.exit(0)
|
||||
}
|
||||
}
|
||||
|
||||
parseArgs(process.argv)
|
||||
entryErrorCheck();
|
Loading…
Add table
Add a link
Reference in a new issue