From cdf300eb476ede05a46a410ca3be38968e75092b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 3 Feb 2021 14:41:01 +0000 Subject: [PATCH 01/18] Fix italic font --- epicyon-calendar.css | 2 +- epicyon-profile.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epicyon-calendar.css b/epicyon-calendar.css index 076d5ad1f..223f3836a 100644 --- a/epicyon-calendar.css +++ b/epicyon-calendar.css @@ -28,7 +28,7 @@ @font-face { font-family: 'Bedstead'; - font-style: var(--calendar-header-font-style); + font-style: italic; font-weight: normal; font-display: block; src: url('./fonts/bedstead.otf') format('opentype'); diff --git a/epicyon-profile.css b/epicyon-profile.css index f97f70677..1fa683db6 100644 --- a/epicyon-profile.css +++ b/epicyon-profile.css @@ -158,7 +158,7 @@ @font-face { font-family: 'Bedstead'; - font-style: var(--italic-font-style); + font-style: italic; font-weight: normal; font-display: block; src: url('./fonts/bedstead.otf') format('opentype'); From 26fb823e9abb925161db51fe55ba3224e24297cb Mon Sep 17 00:00:00 2001 From: Luke Murphy Date: Wed, 3 Feb 2021 16:04:27 +0100 Subject: [PATCH 02/18] Remove namespace hack that doesn't work --- epicyon/README.md | 5 ----- epicyon/__init__.py | 23 ----------------------- 2 files changed, 28 deletions(-) delete mode 100644 epicyon/README.md delete mode 100644 epicyon/__init__.py diff --git a/epicyon/README.md b/epicyon/README.md deleted file mode 100644 index 8cb99765d..000000000 --- a/epicyon/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Epicyon Pypi package - -This is a wrapper package for the purpose of gathering all modules under the -`epicyon` namespace when doing Python module imports. With this wrapper -package, you can get `from epicyon import httpsig` instead of `import httpsig`. diff --git a/epicyon/__init__.py b/epicyon/__init__.py deleted file mode 100644 index a437682e1..000000000 --- a/epicyon/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -"""Pypi package module namespce wrapper. - -We do this automation based importing to take all Epicyon modules in under this -package namespace in one go. This way we do not have to maintain a module list -here just for the Pypi packaging effort and package builds will automatically -pick up new modules as we go forward. -""" - -from pathlib import Path -from pkgutil import walk_packages - -__all__ = [] - -package_root = str(Path(".").parent.absolute()) - -for loader, module_name, is_pkg in walk_packages([package_root]): - __all__.append(module_name) - - if module_name == "epicyon": - continue - - _module = loader.find_module(module_name).load_module(module_name) - globals()[module_name] = _module From d3c7ec85371f4b8f24aeceaadd720e7ed9e23e00 Mon Sep 17 00:00:00 2001 From: Luke Murphy Date: Wed, 3 Feb 2021 16:08:44 +0100 Subject: [PATCH 03/18] Add scripts --- setup.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.cfg b/setup.cfg index b2e1fcb5d..4ed6597c5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -21,6 +21,9 @@ classifiers = [options] packages = . +scripts = + deploy/i2p + deploy/onion install_requires = crypto >= 1.4.1, < 2 idna >= 2.5, < 3 From a2f1c8a9664f6baf420e0ba3110d770a0b96bd01 Mon Sep 17 00:00:00 2001 From: Luke Murphy Date: Wed, 3 Feb 2021 16:08:51 +0100 Subject: [PATCH 04/18] Add package data --- setup.cfg | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/setup.cfg b/setup.cfg index 4ed6597c5..f7985ac16 100644 --- a/setup.cfg +++ b/setup.cfg @@ -34,3 +34,18 @@ install_requires = python-dateutil >= 2.8.1, < 3 requests >= 2.25.1, < 3 socks # no versions https://pypi.org/project/socks/ + +[options.package_data] +* = + *.css + *.txt + defaultcategories/* + emoji/* + fonts/* + gemini/* + img/* + orgs/* + theme/**/* + theme/**/**/* + translations/* + website/* From 2cdd458079ea19b4f6e1f3b2bd1cfe6eedb9a38e Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 3 Feb 2021 18:25:41 +0000 Subject: [PATCH 05/18] Tidying --- httpsig.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/httpsig.py b/httpsig.py index 78cb1b9c2..443cd9a2c 100644 --- a/httpsig.py +++ b/httpsig.py @@ -250,7 +250,8 @@ def verifyPostHeaders(httpPrefix: str, publicKeyPem: str, headers: dict, signature = base64.b64decode(signatureDict['signature']) try: - pkcs1_15.new(publicKeyPem).verify(headerDigest, signature) + pubKey = pkcs1_15.new(publicKeyPem) + pubKey.verify(headerDigest, signature) return True except (ValueError, TypeError): if debug: From bb28858c9ec55c0ae7ea137f0ae7dca98622955c Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 3 Feb 2021 21:18:03 +0000 Subject: [PATCH 06/18] Test switching from pycryptodome to python3-cryptography --- httpsig.py | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/httpsig.py b/httpsig.py index 443cd9a2c..88fe0a895 100644 --- a/httpsig.py +++ b/httpsig.py @@ -9,26 +9,26 @@ __status__ = "Production" # see https://tools.ietf.org/html/draft-cavage-http-signatures-06 -try: - from Cryptodome.PublicKey import RSA - from Cryptodome.Hash import SHA256 - from Cryptodome.Signature import pkcs1_15 -except ImportError: - from Crypto.PublicKey import RSA - from Crypto.Hash import SHA256 - # from Crypto.Signature import PKCS1_v1_5 - from Crypto.Signature import pkcs1_15 - +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.serialization import load_pem_private_key +from cryptography.hazmat.primitives.serialization import load_pem_public_key +from cryptography.hazmat.primitives.asymmetric import padding +from cryptography.hazmat.primitives import hashes import base64 from time import gmtime, strftime import datetime from utils import getFullDomain +def _getSHA256(msg: str): + digest = hashes.Hash(hashes.SHA256(), backend=default_backend()) + digest.update(msg) + return digest.finalize() + + def messageContentDigest(messageBodyJsonStr: str) -> str: msg = messageBodyJsonStr.encode('utf-8') - digestStr = SHA256.new(msg).digest() - return base64.b64encode(digestStr).decode('utf-8') + return base64.b64encode(_getSHA256(msg)).decode('utf-8') def signPostHeaders(dateStr: str, privateKeyPem: str, @@ -66,7 +66,8 @@ def signPostHeaders(dateStr: str, privateKeyPem: str, 'content-type': 'application/activity+json', 'content-length': str(contentLength) } - privateKeyPem = RSA.import_key(privateKeyPem) + key = load_pem_private_key(privateKeyPem.encode('utf-8'), + None, backend=default_backend()) # headers.update({ # '(request-target)': f'post {path}', # }) @@ -76,10 +77,11 @@ def signPostHeaders(dateStr: str, privateKeyPem: str, for headerKey in signedHeaderKeys: signedHeaderText += f'{headerKey}: {headers[headerKey]}\n' signedHeaderText = signedHeaderText.strip() - headerDigest = SHA256.new(signedHeaderText.encode('ascii')) + headerDigest = _getSHA256(signedHeaderText.encode('ascii')) # Sign the digest - rawSignature = pkcs1_15.new(privateKeyPem).sign(headerDigest) + rawSignature = key.sign(headerDigest, + padding.PKCS1v15(), hashes.SHA256()) signature = base64.b64encode(rawSignature).decode('ascii') # Put it into a valid HTTP signature format @@ -176,7 +178,8 @@ def verifyPostHeaders(httpPrefix: str, publicKeyPem: str, headers: dict, if debug: print('DEBUG: verifyPostHeaders ' + method) - publicKeyPem = RSA.import_key(publicKeyPem) + pubkey = load_pem_public_key(publicKeyPem.encode('utf-8'), + backend=default_backend()) # Build a dictionary of the signature values signatureHeader = headers['signature'] signatureDict = { @@ -244,16 +247,19 @@ def verifyPostHeaders(httpPrefix: str, publicKeyPem: str, headers: dict, print('DEBUG: signedHeaderList: ' + str(signedHeaderList)) # Now we have our header data digest signedHeaderText = '\n'.join(signedHeaderList) - headerDigest = SHA256.new(signedHeaderText.encode('ascii')) + headerDigest = _getSHA256(signedHeaderText.encode('ascii')) # Get the signature, verify with public key, return result signature = base64.b64decode(signatureDict['signature']) try: - pubKey = pkcs1_15.new(publicKeyPem) - pubKey.verify(headerDigest, signature) + pubkey.verify( + signature, + headerDigest, + padding.PKCS1v15(), + hashes.SHA256()) return True - except (ValueError, TypeError): + except BaseException: if debug: print('DEBUG: verifyPostHeaders pkcs1_15 verify failure') return False From 22984cd16fbbda993aebb12f0f221a1f5292b487 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 3 Feb 2021 21:21:57 +0000 Subject: [PATCH 07/18] Revert "Test switching from pycryptodome to python3-cryptography" This reverts commit bb28858c9ec55c0ae7ea137f0ae7dca98622955c. --- httpsig.py | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/httpsig.py b/httpsig.py index 88fe0a895..443cd9a2c 100644 --- a/httpsig.py +++ b/httpsig.py @@ -9,26 +9,26 @@ __status__ = "Production" # see https://tools.ietf.org/html/draft-cavage-http-signatures-06 -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives.serialization import load_pem_private_key -from cryptography.hazmat.primitives.serialization import load_pem_public_key -from cryptography.hazmat.primitives.asymmetric import padding -from cryptography.hazmat.primitives import hashes +try: + from Cryptodome.PublicKey import RSA + from Cryptodome.Hash import SHA256 + from Cryptodome.Signature import pkcs1_15 +except ImportError: + from Crypto.PublicKey import RSA + from Crypto.Hash import SHA256 + # from Crypto.Signature import PKCS1_v1_5 + from Crypto.Signature import pkcs1_15 + import base64 from time import gmtime, strftime import datetime from utils import getFullDomain -def _getSHA256(msg: str): - digest = hashes.Hash(hashes.SHA256(), backend=default_backend()) - digest.update(msg) - return digest.finalize() - - def messageContentDigest(messageBodyJsonStr: str) -> str: msg = messageBodyJsonStr.encode('utf-8') - return base64.b64encode(_getSHA256(msg)).decode('utf-8') + digestStr = SHA256.new(msg).digest() + return base64.b64encode(digestStr).decode('utf-8') def signPostHeaders(dateStr: str, privateKeyPem: str, @@ -66,8 +66,7 @@ def signPostHeaders(dateStr: str, privateKeyPem: str, 'content-type': 'application/activity+json', 'content-length': str(contentLength) } - key = load_pem_private_key(privateKeyPem.encode('utf-8'), - None, backend=default_backend()) + privateKeyPem = RSA.import_key(privateKeyPem) # headers.update({ # '(request-target)': f'post {path}', # }) @@ -77,11 +76,10 @@ def signPostHeaders(dateStr: str, privateKeyPem: str, for headerKey in signedHeaderKeys: signedHeaderText += f'{headerKey}: {headers[headerKey]}\n' signedHeaderText = signedHeaderText.strip() - headerDigest = _getSHA256(signedHeaderText.encode('ascii')) + headerDigest = SHA256.new(signedHeaderText.encode('ascii')) # Sign the digest - rawSignature = key.sign(headerDigest, - padding.PKCS1v15(), hashes.SHA256()) + rawSignature = pkcs1_15.new(privateKeyPem).sign(headerDigest) signature = base64.b64encode(rawSignature).decode('ascii') # Put it into a valid HTTP signature format @@ -178,8 +176,7 @@ def verifyPostHeaders(httpPrefix: str, publicKeyPem: str, headers: dict, if debug: print('DEBUG: verifyPostHeaders ' + method) - pubkey = load_pem_public_key(publicKeyPem.encode('utf-8'), - backend=default_backend()) + publicKeyPem = RSA.import_key(publicKeyPem) # Build a dictionary of the signature values signatureHeader = headers['signature'] signatureDict = { @@ -247,19 +244,16 @@ def verifyPostHeaders(httpPrefix: str, publicKeyPem: str, headers: dict, print('DEBUG: signedHeaderList: ' + str(signedHeaderList)) # Now we have our header data digest signedHeaderText = '\n'.join(signedHeaderList) - headerDigest = _getSHA256(signedHeaderText.encode('ascii')) + headerDigest = SHA256.new(signedHeaderText.encode('ascii')) # Get the signature, verify with public key, return result signature = base64.b64decode(signatureDict['signature']) try: - pubkey.verify( - signature, - headerDigest, - padding.PKCS1v15(), - hashes.SHA256()) + pubKey = pkcs1_15.new(publicKeyPem) + pubKey.verify(headerDigest, signature) return True - except BaseException: + except (ValueError, TypeError): if debug: print('DEBUG: verifyPostHeaders pkcs1_15 verify failure') return False From 1e644a527bff30e0e3fa8906c1a9926fbfb543c3 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 10:02:46 +0000 Subject: [PATCH 08/18] Update default categories --- defaultcategories/en.xml | 385 +++++++++++++++++++++------------------ 1 file changed, 211 insertions(+), 174 deletions(-) diff --git a/defaultcategories/en.xml b/defaultcategories/en.xml index 920fba437..cc4d9e200 100644 --- a/defaultcategories/en.xml +++ b/defaultcategories/en.xml @@ -6,529 +6,566 @@ retro retrocomputer A500 atarist commodore teletext floppy 8bit atari trs80 floppydisk retrocomputing C64 plan9 80s microcomputing omm retrogaming z80 8bitdo retro retropie amiga bbcmicro microcomputer bbsing - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT sport - billiard darts swim motorsport snooker marathon hockey bouldering diving baseball Millwall sailing athletics dumpsterdiving skating skiing sport football + billiard darts swim motorsport snooker marathon hockey bouldering diving baseball Millwall sailing athletics dumpsterdiving skating skiing sport football combatsports - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT events - neverforget award OONIbday waybackwednesday IndigenousPeoplesDay5 notifications throwbackthursday adventskalender live Day deepthoughts thingaday screenshotsaturday thursdaythoughts beethoven250thbirthday humanrightsday followfriday afediversechristmas wednesdaymotivation PostLikeYouThinkACrabWouldSunday showerthoughts beethoven anarchymonday 100DaysToOffload 0day ff holiday ipv4flagday christmas week concert festival FridayFolklore screenshottuesday dontstarve onthisday livestream BowieDay sunday weekendvibes screenshotsunday VerseThursday liverpool adayinthelife day ccc InternationalCheetahDay interestingtimes sideprojectsunday birthday christmaslights meetup + neverforget award OONIbday waybackwednesday IndigenousPeoplesDay5 notifications solo throwbackthursday adventskalender live Day deepthoughts thingaday screenshotsaturday warmingup thursdaythoughts beethoven250thbirthday humanrightsday followfriday afediversechristmas wednesdaymotivation PostLikeYouThinkACrabWouldSunday showerthoughts beethoven anarchymonday 100DaysToOffload 0day ff holiday ipv4flagday christmas weeknotes week concert festival FridayFolklore screenshottuesday kdenlive dontstarve onthisday insideoutsockday livestream BowieDay tzag sunday weekendvibes screenshotsunday cree VerseThursday liverpool adayinthelife day ccc InternationalCheetahDay interestingtimes sideprojectsunday birthday christmaslights meetup - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT gafam - zuckerberg caringissharing ads apple antitrust SpringerEnteignen ABoringDystopia GoogleDown AppleSearch bankruptBezos googlesearch youtube Goggle headset ffs facebook interoperability amazon farcebook boycottinstagram amazonring Gafam googleplus degooglisation siri Facebook LeiharbeitAbschaffen advertising monopolies adtech fuckgoogle plottertwitter microsoft dtm twitter skype chrome hildebrandt corporateGiant uitkeringen youtubedl degoogled youtubers google gis walledgarden GAFCAM dt dotcoms deleteyoutube Instagram walledgardens fascistbook FuckGoogle degoogle fuschia appleiie deleteinstagram ungoogled ring stopgoogle affordances googledown gafam inspiring fuckoffgoogle deletefacebook fuckoffgoogleandco office365 instagram playstore bigtech whatsapp deleteamazon bluesky + zuckerberg caringissharing ads apple antitrust SpringerEnteignen ABoringDystopia GoogleDown AppleSearch bankruptBezos googlesearch youtube Goggle headset ffs facebook interoperability amazon farcebook boycottinstagram amazonring Gafam googleplus degooglisation siri Facebook LeiharbeitAbschaffen advertising monopolies adtech fuckgoogle plottertwitter microsoft dtm twitter skype chrome hildebrandt corporateGiant uitkeringen youtubedl degoogled youtubers google gis walledgarden GAFCAM dt dotcoms deleteyoutube datafarms Instagram walledgardens fascistbook FuckGoogle degoogle fuschia appleiie deleteinstagram ungoogled ring stopgoogle earrings affordances googledown gafam inspiring fuckoffgoogle deletefacebook fuckoffgoogleandco office365 instagram playstore bigtech whatsapp deleteamazon bluesky - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + + + people + Melissa harold paul Zachary markdown danielle dylan scott Barbara Kenneth theresa Denise Jesse Adam justin katherine judith Karen Patricia russell juan diane Rebecca donna olivia peter William denise Betty evelyn Christina brittany Jennifer Gregory Wayne Andrychów ethan Ralph Peter americalatina jean laura betty nathan margaret Bryan Virginia Jose Rose eric james david Joshua christine Billy CapitolRiot natalie daniel Jonathan Michael susan George johnny Lauren christina Amy kevin Natalie kenneth noahkathryn Lawrence aaron gregory Amber alexa Robert Edward Patrick Rachel bruce dennis Kayla frank Diane Donna Jack Paul Janice Brenda alexis timothy vincent Alice sarah amy Daniel jeff charlotte carolyn Emma Kyle Sean emily linda Olivia Eugene Donald janet ryan RichardDWolff bryan Hannah anna Catherine Alexander Christopher bob doris Anthony Jean diana Beverly frances Sarah margaretthatcher Jordan Anna Ethan Amanda jeremy donald mark matthew julie stephanie Jerry Diana David Linda adam richard henry Isabella elizabeth steven jessica Walter jeffrey Kevin Justin grace PeterGelderloos brandon mary sharon nicholas Benjamin amanda Emily Ruth heather albert Julie nancy stephen James Megan Raymond michelle Nancy Frances Henry andrew Jessica julia Dorothy Jason Charles Danielle Brandon jose noamchomsky virginia beverly ronald Bob madison Helen Jeff helen Sophia larry dorothy Dennis monbiot Nicholas Frank jack Stephen Janet Alexis Pamela Jacqueline Dylan roy brenda jesse Roger Jeffrey Brittany Shirley Nathan christopher Carol Susan jason Philip Logan sandra jacob rose isabella Cynthia Joan aldoushuxley Maria martha Randy carl kyle karen raymond alice jerry carol Victoria Steven Douglas Lisa Julia joshua jacqueline Ashley eugene Bruce Albert Austin thomas Evelyn Gary Scott kimberly lawrence jennifer Russell austin logan Laura Chris Teresa Aaron Keith brian marktwain maria Joseph Andrew Vincent Katherine Joyce lauren Ryan amber alan ralph megan Kathleen sophia Cheryl abigail cynthia john Alan Debra arthurgloria Christine marilyn anthony chris Elizabeth sean Louis Larry christian deborah billy Abigail joesara keith Jeremy zachary ruth Grace teresa Doris benjamin Willie george barbara Charlotte philip randy Margaret Heather Bradley Jacob shirley pamela Matthew Nicole joan judy Kelly Brian melissa Sandra joseph andrea Joe Sara robert aaronswartz Bobby emma willie william angela samuel tyler Thomas John patricia ashley bobby kelly hannah Carolyn Ann CrimsonRosella gary wayne Marilyn Deborah Sharon Mary Samuel Mark walter rebecca Madison Juan lisa cheryl janice Christian gerald Timothy roger edward bradley Gerald patrickrachel framalang Kimberly Gabriel Marie louis kathleen Arthur Gloria terry Richard jonathan Harold Roy samantha iot Carl Eric relationships nicole Andrea Judith Terry Stephanie Johnny Angela Noah Kathryn riot Ronald AskVanta Michelle Theresa gabrielmarie Samantha Judy michael charles Tyler kayla catherinealexander Martha debra joyce + + Thu, 04 Feb 2021 10:01:14 UT activitypub - followerpower FederatedSocialMedia Fediverse activitypub activertypub pleroma losttoot PeerTube gofed pixelfedlabs fediblock lazyfedi federation instances fedilab pixiv mastotips fedilabfeature mastodev mastotip friendica hiveway mastodonart misskey joinmastodon siskin followers fediart blocking Pixelfed contentwarnings pixelfed fediverseplaysjackbox mapeocolaborativo fedidb block FediMemories Feditip fablab Fediseminar onlyfedi socialcg monal tusky peertubers imagedescription joinpeertube feditips fedizens Mastodon following map epicyon development peertubeadmin collaboration mastomagic YearOfTheFediverse dev fediadmin pixeldev timeline socialmedia fosstodon instanceblock mastodonmonday isolategab greenmastodon fedireads PeertubeMastodonHost Bookwyrm federated socialhome greenfediverse microblocks fedivers MastodonMondays fediverse imagedescriptions Fedilab mastoadmin smithereen blabber FediverseFutures mastodon fedi fediplay peertube lab mobilizon gemifedi + followerpower FederatedSocialMedia Fediverse activitypub activertypub pleroma losttoot Rss2Fedi PeerTube gofed pixelfedlabs fediblock fediverso lazyfedi federation instances fedilab pixiv mastotips fedilabfeature mastodev pixel mastodontips mastotip friendica mastodontip hiveway mastodonart misskey collaboraoffice BlackFedi joinmastodon siskin followers fediart blocking Pixelfed contentwarnings pixelfed fediverseplaysjackbox mapeocolaborativo fedihive fedidb block FediMemories Feditip fablab Fediseminar onlyfedi socialcg monal sponsorblock tusky peertubers imagedescription joinpeertube feditips fedizens Mastodon following map epicyon afediversechat peertubeadmin collaboration mastomagic YearOfTheFediverse dev fediadmin mastodonhost mond pixeldev timeline socialmedia fosstodon instanceblock softwaredevelopment mastodonmonday isolategab greenmastodon fedireads PeertubeMastodonHost Bookwyrm federated socialhome greenfediverse microblocks fedivers MastodonMondays fediverse imagedescriptions Fedilab mastoadmin smithereen hackerstown blabber FediverseFutures mastodon fedi fediplay peertube adblock lab BlackMastadon mobilizon gemifedi - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT programming - Easer cpp programming css objects Python digitalisierung FrancisBacon2020 mixers webdev gui release ada schutzstreifen proofofwork rustlang ocaml program DigitalSouveräneSchule request_reaction uptronics hypocritcal profiles typescript forums vscode publiccode computerscience vieprivée early adventofcode cgit scripting warn git solid trevornoah zinccoop tailwindcss penguicon raku fedidev c sourcecode publiekecode framaforms WendyLPatrick grep django gmic sackthelot gitportal gitlab decoder relevance_P1Y kingparrot Leiharbeit programmer haskell OpenSourceHardware Tarifvertrag unicode gerrit frgmntscnr github digitalmarketsact freecodecamp openrc tuskydev threema algorithms lisp digitaldefenders forge pleaseshare HirsuteHippo resnetting fourtwenty developers libraries drivers freecode javascript fragment cpm code elisp commands patterns eq html terminal rust request spiritbomb r dramasystem go esbuild documentary golang clojurescript ruby contractpatch obsolescence_programmée computers developer racket bugreport mercurial python indiedev kabelfernsehen alternatives OpenSource Scheibenwischer + Easer cpp digitalpreservation programming css objects Python digitalisierung FrancisBacon2020 mixers webdev gui digital release ada schutzstreifen pypi proofofwork rustlang ocaml program DigitalSouveräneSchule request_reaction uptronics hypocritcal profiles typescript forums vscode publiccode computerscience hackers vieprivée early adventofcode cgit CommonJS scripting warn git ui solid trevornoah zinccoop tailwindcss guix penguicon raku fedidev c sourcecode publiekecode framaforms WendyLPatrick grep django gmic sackthelot gitportal gitlab decoder relevance_P1Y kingparrot Leiharbeit programmer trunk haskell OpenSourceHardware Tarifvertrag unicode development gerrit frgmntscnr github digitalmarketsact freecodecamp openrc tuskydev threema html5 algorithms lisp digitaldefenders forge pleaseshare HirsuteHippo resnetting fourtwenty adaptation developers libraries drivers freecode javascript fragment cpm code elisp commands patterns eq ECMAScriptModules html portal terminal rust request spiritbomb r dramasystem go esbuild golang clojurescript ruby contractpatch obsolescence_programmée computers developer racket forum bugreport mercurial python indiedev kabelfernsehen alternatives OpenSource Scheibenwischer - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT nature - hiking wat StormBella morning trees lichen badger light birds nature frogs sunrise moutains coldwater inaturalist forest morningcrew australianwildlife capybara goodmorning enlightenment natur deforestation morningwalk amphibians + hiking wat StormBella morning trees lichen badger light birds nature teamcapy frogs sunrise moutains coldwater inaturalist forest morningcrew australianwildlife capybara goodmorning enlightenment natur deforestation morningwalk amphibians - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT writing - blog tootfic authors poem blogPages magazine smallstories blogging smallpoems writing blogs noblogo microfiction interactivestorytelling westernjournal quote WriteFreely storytelling goodreads creativewriting zines journalists journal poetry + blog tootfic authors poem pdf blogPages magazine smallstories blogging smallpoems writing proverbs blogs noblogo hedgedoc microfiction interactivestorytelling westernjournal quote WriteFreely storytelling goodreads creativewriting horror zines shortstories journalists journal poetry - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT hardware - iot plugandplay purism opennic PersonalComputer cyberdeck PineCUBE keyboards electron screenless homebrewcomputing pinebook modem analogcomputing TrueDelta keyboard screenprinting ArmWorkstation daretocare laptops electronics printmaker deck cybredeck computing laptop solarpunk recycling theatrelighting lenovo fairelectronics fuse ibm 3dprinting MechcanicalKeyboards hardware retrohardware openhardware raspberrypi barcode PlanetComputer pinetime pinebookpro PinebookPro 3dprint mechanicalkeyboard arm PinePower paperComputer amd openpower devopa thinkpad raspberrypi4 print electronic + plugandplay purism opennic PersonalComputer cyberdeck PineCUBE keyboards electron screenless homebrewcomputing FarmersTractorRally pinebook modem lowtech analogcomputing TrueDelta keyboard screenprinting pocketchip ArmWorkstation daretocare laptops electronics charm printmaker deck larp cybredeck computing laptop solarpunk recycling theatrelighting lenovo fairelectronics MacBookProService fuse ibm 3dprinting MechcanicalKeyboards hardware retrohardware openhardware raspberrypi barcode PlanetComputer pinetime screens pinebookpro 3d PinebookPro 3dprint mechanicalkeyboard arm ipad FireAlarms PinePower paperComputer amd openpower devopa thinkpad raspberrypi4 print electronic - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + + + internet + linkeddata decentralised immersiveweb dotcons i2p spam firefox redecentralize decentral wikipedia rtmp dataprotection decentralization inclusiónsocial decentralize w3c dotConism selfhosted maille torrent mailab data socialism sitejs worldbusterssocialclub publicserviceinternet centralisation internetarchaeology WordPress darkages self contentmoderation distributed mydata decentralizedweb socialhub router protection rne dataretention bigdata routeros selfhosting communityhosting brave icann selfsustaining hosting discourse weblate PeerToPeer dns openstandards nojs oauth hypercore CDNsAreEvil protonmail standards yourdataisyourdata internetfreedom gemini webui InternetCrimeFamily internetBanking SmallWeb cw internetshutdown distributedcoop xmpp semanticweb socialnetwork selfie website content highavailability webstandards mapa domains ntp cloudfront socialnetworks metadata disconnect Meme database proton disco descentralizare icmp videocast jabber webbrowsers decentralized wiki ssb darknet cookies darkweb netcat darktable Reddit server browser cloudy IPFS p2p social antisocial www ilovewikipedia web WebsiteStatus netshutdowns twitch im 9front theserverroom domain OpenStreetMap pirate filesharing rss openstreetmap ipns mozilla voicemail mail i2pd ipfs internetradio browsers wikidata selfpub decentralizeit netscape mixcloud gmail openculture letthenetwork cyberspace messaging selfies offthegrid enxeñeríasocial cloud internet decentralisation ssbroom serverMeddling sneakernet internetarchive godot dweb js dark beakerbrowser openweb NetShutdown onlineharms dot Internet descentralizarea thepiratebay ftp internetshutdowns fixtheweb lazyweb socialweb mozillahubs instantmessaging interoperabilitate webmention + + Thu, 04 Feb 2021 10:01:14 UT + + + science + engineering math epidemiology ethnology womeninstem archeology botany STEM biodiversity linguistic supercollider nextgeneration zoology climatology dna geography physics archaeologist generalstreik geology bioengineering botanical dawkins graphTheory meterology biotech psychology biology generation gene chemistry paleontology oceanography stem biomedical anthropology + + Thu, 04 Feb 2021 10:01:14 UT + + + photos + smartphonephotography nikon 90mm photography photo photogrpahy tokyocameraclub photos photoshop camera cameras myphoto naturephotography picture streetphotography photoreference + + Thu, 04 Feb 2021 10:01:14 UT places - lapaz luanda asunción nouakchott conakry kyiv moscow saipan gibraltar dublin KlimaGerechtigkeit catalunya dannibleibt avarua hargeisa delhi niamey chișinău freestuff colombo brasília phnompenh mbabane danni belgrade belmopan pyongyang hannover ulaanbaatar oranjestad Reykjavik gaborone seattle ndjamena raw singapore kingedwardpoint abidjan nuuk asshole pretoria papeete malé zagreb gitega abudhabi flyingfishcove castries georgetown hagåtña cassette borikua basseterre hamburg kinshasa suva valparaíso athens roseau baku charlotteamalie antananarivo domi pristina videocalls santiago sukhumi berlin uptronicsberlin funafuti libreville stopchasseacourre puertorico ClimateChange hanoi philipsburg tehran banjul prague andorralavella daw yerevan portauprince dakar paramaribo tifariti capetown tirana klima ankara ipswich managua lisbon bishkek amsterdam portonovo santodomingo bangkok bucharest kathmandu aden madrid sanjuan vienna kingston kabul damascus stockholm douglas willemstad thehague panamacity RassismusTötet beirut amman newdelhi tórshavn nouméa oslo alofi gustavia paris video cockburntown ottawa classical stepanakert portofspain klimakrise class fsberlin honiara berniememe asmara florida nicosia helsinki taipei tegucigalpa tokyo tashkent larochelle MadeInEU sarajevo algiers KlimaKrise nairobi muscat monaco riyadh lusaka wellington bissau juba mariehamn klimaatcrisis majuro buenosaires ngerulmud dhaka guatemalacity washington vatican kuwaitcity londonboaters SystemChangeNotClimateChange bern mexicocity bratislava myasstodontownhall bridgetown prince delhipolice crowsnestpass tunis manila stanley matautu copenhagen barcelona lomé budapest ouagadougou mogadishu freetown victoria brazzaville portmoresby ashgabat kampala elaaiún vilnius bloemfontein sucre london passalong marseille berniesanders pagopago bradesestate oakland vaduz addis nürnberg naypyidaw CassetteNavigation khartoum baghdad bandar moroni lehavre portvila kingstown ChrisCrawford reykjavík manama accra windhoek nukualofa classic ciutatvella tbilisi canberra quito maputo cetinje putrajaya ramallah bogotá dodoma harare havana warsaw münster valletta localberlin ljubljana bamako kualalumpur podgorica rabat cotonou plymouth seoul Portland dushanbe bangui aotearoa westisland tskhinvali palikir caracas jamestown rome munich ass freestuffberlin bass sãotomé jakarta daressalaam sansalvador seo apia essex yaren cairo jerusalem brussels kigali southtarawa beijing minsk montevideo vientiane maseru hamilton doha tripoli celtic portlouis lima adamstown deventer weimar abuja lilongwe nassau lobamba heathrow nyc strawberry montreal dili riga assembly lesbos monrovia nursultan gab sanjosé klimaatrechtvaardigheid marigot islamabad fb malabo tallinn sahara thimphu yaoundé praia bujumbura washingtondc sofia skopje + lapaz luanda asunción nouakchott conakry kyiv moscow saipan gibraltar dublin KlimaGerechtigkeit catalunya dannibleibt avarua hargeisa delhi niamey chișinău freestuff colombo brasília phnompenh mbabane danni belgrade belmopan pyongyang hannover ulaanbaatar oranjestad Reykjavik gaborone seattle ndjamena raw singapore kingedwardpoint abidjan nuuk asshole pretoria papeete malé zagreb gitega abudhabi flyingfishcove castries georgetown hagåtña cassette oric borikua basseterre hamburg kinshasa suva klimaatverandering valparaíso athens roseau baku charlotteamalie antananarivo domi pristina videocalls santiago sukhumi berlin uptronicsberlin funafuti libreville puertorico ClimateChange hanoi philipsburg tehran banjul prague andorralavella daw yerevan portauprince dakar paramaribo tifariti capetown rigaer94 tirana klima ankara ipswich managua lisbon bishkek amsterdam climatchoas klimaat portonovo santodomingo bangkok bucharest kathmandu aden madrid sanjuan vienna kingston kabul damascus stockholm douglas willemstad hibernoenglish thehague panamacity RassismusTötet beirut amman newdelhi tórshavn nouméa oslo alofi gustavia paris video cockburntown ottawa classical stepanakert portofspain klimakrise class fsberlin honiara berniememe asmara florida nicosia helsinki taipei tegucigalpa tokyo tashkent larochelle MadeInEU sarajevo algiers KlimaKrise nairobi muscat monaco riyadh lusaka wellington bissau juba mariehamn klimaatcrisis majuro buenosaires ngerulmud dhaka guatemalacity washington vatican kuwaitcity londonboaters SystemChangeNotClimateChange bern mexicocity bratislava myasstodontownhall bridgetown prince delhipolice crowsnestpass tunis manila stanley matautu copenhagen barcelona lomé videocall budapest ouagadougou mogadishu freetown victoria brazzaville portmoresby ashgabat kampala elaaiún vilnius bloemfontein sucre london passalong marseille berniesanders pagopago bradesestate oakland vaduz addis nürnberg naypyidaw CassetteNavigation khartoum baghdad bandar moroni cuirass lehavre portvila kingstown ChrisCrawford reykjavík manama accra windhoek nukualofa classic ciutatvella tbilisi canberra quito maputo cetinje putrajaya ramallah bogotá dodoma harare havana warsaw münster valletta localberlin ljubljana bamako kualalumpur podgorica rabat cotonou plymouth seoul Portland dushanbe bangui aotearoa westisland tskhinvali palikir caracas jamestown rome munich ass freestuffberlin bass sãotomé jakarta daressalaam sansalvador seo apia essex yaren cairo jerusalem brussels kigali southtarawa beijing minsk montevideo vientiane maseru hamilton doha tripoli celtic portlouis lima adamstown deventer weimar abuja lilongwe nassau lobamba heathrow nyc strawberry montreal dili riga assembly lesbos monrovia nursultan Neuzulassung gab sanjosé klimaatrechtvaardigheid marigot islamabad fb malabo tallinn sahara thimphu yaoundé praia bujumbura washingtondc sofia skopje - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT music - musicprodution punk ourbeats vollgasindiekrise indieweb indiemusic streetpunk bikepunks bandcamp musicians jamendo ipod skinheadmusic rap shoegaze mp3 indie Music EnvoieStopHashtagAu81212 thecure posthardcore vaporwave IndustrialMusicForIndustrialPeople Mixtip dubstep synthwave bootstrap oi rave freemusic nowplaying hiphop hardcore experimentalmusic spotify liberapay fedimusic musicbrainz soundcloud frankiegoestohollywood ccmusic typographie dj newwave dorkwave producing musicproduction lastfm funkwhale punkwear retrosynth NowPlaying libremusicproduction MusicAdvent coinkydink arianagrande synth music np graphics darkwave mastomusic grapheneos metal polychromatic funk fediversemusic cyberpunkmusic BandcampFriday + musicprodution LaurieAnderson punk ourbeats vollgasindiekrise indieweb indiemusic streetpunk bikepunks bandcamp musicians jamendo ipod skinheadmusic rap shoegaze mp3 indie steampunk Music EnvoieStopHashtagAu81212 thecure posthardcore vaporwave IndustrialMusicForIndustrialPeople Mixtip dubstep synthwave bootstrap oi rave freemusic nowplaying hiphop hardcore experimentalmusic spotify liberapay fedimusic musicbrainz soundcloud frankiegoestohollywood ccmusic typographie dj newwave dorkwave producing experimental musicproduction lastfm funkwhale wp retrosynth NowPlaying libremusicproduction MusicAdvent coinkydink pmbootstrap arianagrande synth music np graphics darkwave mastomusic grapheneos metal polychromatic funk fediversemusic cyberpunkmusic BandcampFriday - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT politics - Riot riot TakeOurPowerBack trump Anarchy cia alwaysantifascist community wageslavery immigration dissent liberation laws fascism techtuesday skyofmywindow techthursday freedomofspeech anarchist freeexpression fascisme rojava humanrights crime leftists Socialism ukpol FreeKeithLamar Antifascisme copwatch capitalismkills petition BorisJohnson meteorología freedom techdirt abolitionnow anarchism DefundThePolice technews legal polizeigewalt smalltech antifascists oilwars kommunismus bjp ThirdRunway hierarchy election republicans solidarity techwear sky_of_my_window mybodymychoice generalstrike fuckBiden antipolitics digitalfreedom mayday hatespeech fascists lowtech LateStageOfCapitalism ciencia a11y burntheprisons cyberlaw peerproduction corporations iww freeassange commons corporatewatch wageslave uspol frontex communism RemoveThePolice makecapitalismhistory Immigration neoliberalism socialecology MutualAid capitalism technology prisons wealth conspiracytheories corporatecrime DirectAction communist KeirStarmer taoteching anarchismus politics inclusivity HeroesResist brightgreen poc anarchisme DominicCummings nzpol Bookchin ClemencyNow Inauguration2021 brexit totalitarianism privatisation TyskySour Labour freethemall green BAME decolonizeyourmind alternative privilege antikapitalisme AbolishPrisonsAbolishPolice surfaceworldblows ecofascism SocietalChange facialrecognition corruption anarchy Feminism propaganda endsars decolonization digitalrights feminism polizei neo democracy Govts xp powerpolitics 18Source censorshipBook radicaltech conspiracy anarchistbookclub redandanarchistskinheads radicaldemocracy PritiPatel latestagecapitalism racist MexicanRevolution elections RussellMaroonShoatz commonspub white prisoners warrants policebrutality borisjohnson Anarchist press Anarchism mutuality whitehouse metager freedomofexpression censorship decolonize keinmenschistillegal emmet decenterwhiteness Biden ChineseAppBan cooperative modi antifa law deathtoamerica manipulation firetotheprisons britpol Capitalism surveillancecapitalism leftist Revolution ukpolitics glenngreenwald JeremyCorbyn blacklivesmatter FreeAlabamaMovement mononeon rentstrike dsa lawandorder techno migration mutualaid multipleexposure AbolishPrison anarchists fascist socialcoop DefundSurveillanceCapitalism anarchistprisoners whistleblowers polizeiproblem speech uselection IDPol Antifa deathtofascism Slavetrade met ourstreets extremist freespeech refugees BernieSanders acab ecology SurveillanceCapitalism antifascism freewestpapua sunnytech tech + TakeOurPowerBack redessociais trump Anarchy cia alwaysantifascist sabotage qtibpoc community wageslavery immigration dissent liberation laws fascism farmersrprotest techtuesday skyofmywindow techthursday aws freedomofspeech anarchist freeexpression RacialHealing fascisme rojava humanrights crime leftists Socialism ukpol FreeKeithLamar Antifascisme copwatch capitalismkills petition BorisJohnson meteorología freedom techdirt abolitionnow anarchism DefundThePolice technews meto legal polizeigewalt smalltech police antifascists oilwars kommunismus bjp ThirdRunway hierarchy election republicans solidarity techwear sociaalDarwinisme sky_of_my_window mybodymychoice generalstrike fuckBiden neoliberal antipolitics digitalfreedom mayday hatespeech fascists LateStageOfCapitalism stopchasseacourre ciencia a11y burntheprisons cyberlaw peerproduction corporations iww freeassange commons choice Riot corporatewatch wageslave uspol frontex communism RemoveThePolice makecapitalismhistory Immigration neoliberalism socialecology MutualAid capitalism technology test prisons wealth conspiracytheories corporatecrime DirectAction communist KeirStarmer taoteching anarchismus retrotechnology politics inclusivity HeroesResist brightgreen poc anarchisme feminist DominicCummings nzpol Bookchin ClemencyNow Inauguration2021 brexit totalitarianism privatisation TyskySour Labour freethemall green BAME decolonizeyourmind alternative privilege antikapitalisme AbolishPrisonsAbolishPolice surfaceworldblows ecofascism SocietalChange facialrecognition cotech corruption anarchy esm Feminism propaganda endsars decolonization digitalrights feminism polizei neo democracy Govts xp powerpolitics 18Source censorshipBook radicaltech conspiracy anarchistbookclub redandanarchistskinheads radicaldemocracy PritiPatel latestagecapitalism racist MexicanRevolution elections RussellMaroonShoatz LhubSocial commonspub white prisoners warrants policebrutality borisjohnson Anarchist press Anarchism mutuality whitehouse metager freedomofexpression censorship decolonize keinmenschistillegal emmet decenterwhiteness Biden ChineseAppBan cooperative modi antifa law chip deathtoamerica manipulation firetotheprisons britpol Capitalism surveillancecapitalism leftist Revolution ukpolitics glenngreenwald JeremyCorbyn blacklivesmatter FreeAlabamaMovement mononeon rentstrike dsa lawandorder techno migration neoist mutualaid multipleexposure AbolishPrison anarchists fascist righttochoice socialcoop DefundSurveillanceCapitalism anarchistprisoners whistleblowers polizeiproblem speech uselection IDPol Antifa deathtofascism lesanarchistes Slavetrade met ourstreets extremist freespeech refugees BernieSanders acab ecology SurveillanceCapitalism antifascism freewestpapua sunnytech tech - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT food - vitamind cake margarine zwartepiet dessert salsa caviar theexpanse BellaSpielt cookery pietons food skillet spiel liquor milk bolognese recipe foodporn yeast drinking plate waffle biscuit glaze omelette filet pastry wine hamburger juice Amazfish sourdough nuts gras toast broth batter foodie spiele ketchup divoc seasoning mayo soup pan voc imateapot teamcapy mayonnaise vegan dish avocado spice bakery butterfly cooking yogurt thecandycrystalrainbowcodex crumble cider caffeine butter mastokitchen cook pottery mastocook cobbler steak pizza soda fedikitchen aroma oil angelfish flour cream nutella pie cuisine potse tartar kropotkin tea marinade mushroom entree lfi bread salad beans fresh syrup fermentation mushrooms cookie wordstoliveby curd soysauce pudding beer baking peterkropotkin fish foodwaste wheat pot TeamFerment sauerkraut stew chocolate paste wok recipes olive burger candy spanish kitchen coffee bagel taste SpieleWinter2020 meat noodle raclette caramel rice eggs grill poutine lard croissant pasta vegane foods cheese oregano drink muffin foie sauce soy growyourfood vore pandemie cocoa sandwich mousse chili vinegar + vitamind cake margarine zwartepiet dessert salsa caviar theexpanse BellaSpielt cookery pietons food skillet teamgodzilla spiel liquor milk bolognese recipe foodporn yeast drinking plate waffle biscuit glaze omelette filet pastry wine hamburger juice Amazfish sourdough nuts gras toast broth batter foodie spiele ketchup divoc seasoning mayo soup pan voc imateapot mayonnaise vegan dish avocado spice bakery butterflies butterfly cooking yogurt thecandycrystalrainbowcodex crumble cider caffeine butter sailfishos mastokitchen cook pottery mastocook cobbler steak pizza soda fedikitchen aroma oil Miroil angelfish flour cream nutella pie cuisine potse tartar kropotkin tea marinade mushroom entree lfi bread salad beans fresh syrup fermentation mushrooms cookie wordstoliveby curd soysauce pudding beer baking peterkropotkin fish foodwaste wheat pot TeamFerment sauerkraut stew weltspiegel chocolate paste wok recipes olive burger candy spanish kitchen coffee bagel taste SpieleWinter2020 meat noodle raclette caramel rice eggs grill poutine lard croissant pasta vegane foods cheese oregano drink muffin foie sauce foodanddrink soy growyourfood vore pandemie cocoa sandwich mousse chili vinegar - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT farming johndeere - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT countries - romania burma lithuania solomon chile Instanz fiji tajikistan benin paraguay eeuu icelandtrip senegal ukraine italy brunei nicaragua guyana Pflanzenbestimmung euphoria zambia iceland morocco netherlands swaziland bosnian solo suriname winningatlife elsalvador russia samoa european czech belarus hayabusa2 kyrgyzstan uk abuse translation sanmarino catalonia panama africa japan buyused venezuela gambia freeNukem kuwait barbados papua greece switzerland uae nigeria usa angola honduras djibouti laos sierraleone cambodia ych vietnam neofeud seychelles marshall kazakhstan estonia tonga stlucia burundi bangladesh egypt mali congo us jordan speedrun grenada israel psychic algeria ghana bosnia translations russian industrial eritrea bhutan ios hungary saudi slovenia tig czechosvlovakia bahamas australia kiribati togo koreanorth poland Überbevölkerung malawi capeverde run armenia american hautrauswasgeht bahrain mozambique beleuchtung southsudan syria micronesia maldives iran indigenous nonprofitindustrialcomplex sweden ethiopia cuba liberia canada burkina somalia Chile scotland aur russiaToday vaticancity easttimor austria turkey yemen Bolivia denmark trunk USBased madagascar finland philippines ivorycoast haiti ecuador Portugal azerbaijan gasuk spain albania afghanistan europe mauritania dominica ökonomisierung thailand belize westpapuauprising nerdlife macedonia montenegro thenetherlands qatar mongolia costarica boatingeurope birdsofkenya latvia uzbekistan kabelaufklärung ireland iraq malaysia mexico mauritius oman chad nz de georgia zimbabwe france serbia lesotho oddmuse tunisia argentina czechia cameroon namibia sudan indonesia colombia kryptowährung tuvalu britainology beckychambers turkmenistan tanzania germany neuhier norway comoros auteursrecht guatemala Thailand kosovo andorra wales servus pakistan belgium china antigua life koreasouth newzealand visiticeland einzelfall rwanda luxembourg libya indywales italyisntreal nauru Anarchismus moldova palau taiwan kenya trinidad eu botswana CuriosidadesVariadas jamaica vanuatu cyprus aminus3 malta Icelandic niger westpapua busse unitedstates myanmar saintvincent guinea nepal peru uganda uruguay india lebanon neurodiversity southafrica croatia europeanunion bolivia chinese dominican srilanka bulgaria slovakia speedrunning gabon psychedelicart stkitts liechtenstein neofeudalism brazil shutdowncanada + romania burma lithuania solomon chile Instanz fiji tajikistan benin paraguay eeuu icelandtrip senegal ukraine italy brunei nicaragua guyana Pflanzenbestimmung euphoria zambia iceland morocco netherlands swaziland bosnian suriname winningatlife elsalvador russia samoa european czech belarus hayabusa2 kyrgyzstan uk abuse translation sanmarino catalonia panama africa japan buyused venezuela gambia freeNukem kuwait barbados papua greece switzerland uae nigeria usa angola honduras djibouti laos sierraleone nonprofit cambodia ych vietnam neofeud seychelles marshall kazakhstan urk estonia tonga stlucia burundi bangladesh egypt mali congo us jordan speedrun grenada israel psychic algeria ghana bosnia translations russian industrial eritrea bhutan ios hungary Störungsverbot saudi slovenia tig czechosvlovakia bahamas australia kiribati togo koreanorth poland Überbevölkerung malawi capeverde run armenia american hautrauswasgeht bahrain mozambique beleuchtung southsudan syria micronesia maldives iran indigenous nonprofitindustrialcomplex sweden ethiopia cuba liberia canada burkina somalia Chile scotland russiaToday vaticancity easttimor austria turkey yemen Bolivia denmark USBased madagascar finland philippines ivorycoast haiti ecuador Portugal azerbaijan gasuk spain albania afghanistan europe mauritania dominica ökonomisierung thailand belize westpapuauprising nerdlife macedonia montenegro thenetherlands qatar mongolia costarica boatingeurope birdsofkenya latvia uzbekistan kabelaufklärung ireland iraq malaysia mexico mauritius dezentralisierung oman chad nz de georgia zimbabwe france serbia lesotho oddmuse tunisia argentina czechia cameroon namibia sudan indonesia colombia kryptowährung tuvalu britainology beckychambers turkmenistan tanzania germany neuhier norway comoros auteursrecht guatemala Thailand kosovo andorra wales servus pakistan belgium china antigua life koreasouth newzealand visiticeland einzelfall rwanda luxembourg libya indywales italyisntreal nauru Anarchismus moldova palau taiwan kenya trinidad eu botswana CuriosidadesVariadas jamaica vanuatu cyprus aminus3 malta Icelandic niger westpapua busse unitedstates myanmar saintvincent guinea nepal peru uganda uruguay india lebanon neurodiversity southafrica croatia europeanunion bolivia chinese dominican srilanka bulgaria slovakia speedrunning gabon psychedelicart stkitts liechtenstein neofeudalism brazil shutdowncanada - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT cycling bicycle cycling bike motorbike thingsonbikes Snowbike cyclist - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT phones - mobileapp mobian pine fdroid plasmamobile android ubportsqanda linuxmobile phone phones Mobian smartphone sms4you iOS14 linuxphones mobilelinux QWERTYphones siskinim Smartphones androiddev plasma phosh BriarProject librem5 ubportsinstaller osm linuxphone pinetab pinephone mobile pine64 fairphone ubuntutouch Android ubports osmand vodafone linuxonmobile iphones postmarketos iOS microg mobileKüfA + mobileapp fairphone3 téléphone mobian pine fdroid plasmamobile android smartphonepic ubportsqanda linuxmobile phones fennecfdroid Mobian osmf smartphone sms4you iOS14 linuxphones mobilelinux freeyourandroid QWERTYphones siskinim Smartphones androiddev plasma phosh BriarProject librem5 ubportsinstaller osm linuxphone pinetab pinephone mobile pinephones sms pine64 fairphone ubuntutouch Android ubports osmand vodafone linuxonmobile iphones postmarketos iOS microg phone mobileKüfA - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT security - securedrop signalboost encrypt letsencrypt autoritäreretatismus omemo messenger password keepassxc cryptography solarwinds communityalgorithmictrust infosec gchq IHaveSomethingToHide IronySec cryptowars supplychainattacks UseAMaskUseTor cyberattack security tor shortstory e2e bruceschneier vpn openssh openssl cryptoart spyware e2ee ed25519 torproject encryption ssh misshaialert encryptionsist crypto giftofencryption malware righttorepair opsec keepass TastySecurity torsocks nsa protonvpn yubikey nitrokey openpgp castor9 gpgtools gpg fotopiastory cybersecurity Tor CryptoWars signal noscript trust itsecurity cryptocurrency cryptomator signalmessenger openvpn datasecurity autorotate regulators leak drugstore encryptiost securitynow storage tracking cloudflare + signalboost repair encrypt letsencrypt autoritäreretatismus omemo messenger password keepassxc cryptography cybersecuritynews solarwinds communityalgorithmictrust infosec gchq IHaveSomethingToHide fotografie passwords IronySec cryptowars supplychainattacks UseAMaskUseTor cyberattack security tor shortstory e2e bruceschneier vpn openssh openssl cryptoart spyware e2ee ed25519 torproject encryption informationsecurity ssh misshaialert cybersec encryptionsist FormFactors crypto giftofencryption malware corydoctorow righttorepair opsec keepass TastySecurity torsocks nsa protonvpn yubikey nitrokey encrypted openpgp castor9 gpgtools gpg fotopiastory equatorial cybersecurity Tor CryptoWars signal noscript trust drugs itsecurity cryptocurrency foto cryptomator signalmessenger openvpn datasecurity autorotate regulators leak drugstore encryptiost securitynow storage tracking cloudflare - Sun, 24 Jan 2021 10:52:55 UT - - - science - energyflow math STEM stem womeninstem supercollider nextgeneration dna archaeologist generalstreik dawkins graphTheory psychology biology chemistry geology geography physics botany botanical zoology ecology science generation gene paleontology anthropology linguistic epidemiology biotech biomedical bioengineering archeology ethnology climatology oceanography meterology - - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT pandemic - covid19 corona psmeandmywholefamilycaughtcovidfromwork Coronavirus CoronaWarnApp facemasks vaccines vaccine pandemic contacttracing tier4 covid coronavirus masks virus Lockdown rna codid19 COVID19 YesWeWork ContactTracing COVID + covid19 corona psmeandmywholefamilycaughtcovidfromwork Coronavirus CoronaWarnApp facemasks vaccines vaccine pandemic contacttracing tier4 covid coronavirus masks virus Lockdown rna codid19 COVID19 YesWeWork ContactTracing COVID coronamaatregelen - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT software - ui app freedombox windows libre nginx Framasoft invidious drm publicdomain kubernetes fossmendations freedoom jami FuckOffZoom quicksy whiteboard free docker freesoftware gimp foss matrix designjustice thefreethoughtproject filesystems nextcloud wechat openscad TabOrder ikiwiki Linux FreeSoftware rocketchat thanksfreesw outreachy synapse lyft nitter discord opensource diaspora yunohost oss littlebigdetails cabal conferencing libreboot accessibility devops owncast emacs freiesoftware writefreely bigbluebutton email chatapps HappyNewYear floss plugins libresoftware deltachat application uifail FOSS bittorrent vlc zoom tiling gpl GNOME FriendofGNOME usability obnam snap cryptpad software OwnStream upstream slack Element zrythm gnu mumble grsync freecad telegram containers blockchain irssi mcclim mutt design gameoftrees backup LinuxSpotted rotonde freetube GNU thunderbird sysadmin parler apps chat licensing screenreaders LINMOBapps profanity Tankklappe ffmpeg fossandcrafts lemmy reboot OSM freesw agpl strafmaatschappij distributedledger principiadiscordia ghostscript win10 elemental element chatty nativeApp MatrixEffect jitsi wordpress ux rsync libreoffice dino plugin xwiki openoffice discordia sounddesign + app freedombox windows libre nginx Framasoft invidious drm publicdomain kubernetes nodrm copyleft fossmendations freedoom jami FuckOffZoom quicksy whiteboard free docker freesoftware gimp foss matrix designjustice thefreethoughtproject filesystems nextcloud wechat opensourceseeds HappyLight openscad TabOrder ikiwiki Linux FreeSoftware rocketchat thanksfreesw outreachy synapse lyft nitter discord opensource diaspora yunohost oss littlebigdetails cabal conferencing libreboot accessibility devops owncast emacs freiesoftware fluffychat writefreely bigbluebutton email chatapps HappyNewYear floss plugins libresoftware deltachat application uifail FOSS GNOMECircle bittorrent vlc zoom tiling gpl FriendofGNOME usability obnam snap cryptpad software OwnStream upstream slack Element zrythm gnu CTZN mumble grsync freecad drmfree telegram containers tails blockchain irssi mcclim mutt design gameoftrees backup LinuxSpotted rotonde freetube GNU thunderbird sysadmin parler apps chat licensing inclusivedesign defectivebydesign screenreaders LINMOBapps softwareheritage profanity Tankklappe ffmpeg fossandcrafts lemmy reboot opensourcegardens OSM freesw agpl GNOME strafmaatschappij distributedledger principiadiscordia ghostscript win10 Zoom elemental element chatty nativeApp MatrixEffect jitsi wordpress ux rsync libreoffice dino plugin xwiki openoffice discordia ledger sounddesign glimpse - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT - internet - decentralised immersiveweb dotcons i2p spam firefox redecentralize decentral wikipedia rtmp dataprotection decentralization inclusiónsocial decentralize w3c dotConism selfhosted maille torrent data sitejs publicserviceinternet internetarchaeology WordPress darkages self contentmoderation distributed mydata decentralizedweb socialhub router protection dataretention bigdata selfhosting communityhosting brave icann selfsustaining hosting discourse weblate PeerToPeer dns openstandards nojs oauth hypercore CDNsAreEvil protonmail standards yourdataisyourdata internetfreedom gemini webui InternetCrimeFamily internetBanking SmallWeb cw distributedcoop xmpp semanticweb socialnetwork selfie website content highavailability domains ntp socialnetworks metadata Meme proton disco icmp videocast jabber webbrowsers decentralized wiki ssb darknet cookies darkweb netcat darktable Reddit server browser cloudy IPFS p2p social antisocial www ilovewikipedia web WebsiteStatus netshutdowns twitch im 9front theserverroom domain OpenStreetMap filesharing rss openstreetmap ipns mozilla voicemail mail i2pd ipfs internetradio browsers wikidata decentralizeit netscape mixcloud gmail openculture letthenetwork cyberspace messaging offthegrid cloud internet decentralisation serverMeddling sneakernet internetarchive godot dweb js dark beakerbrowser openweb onlineharms dot thepiratebay ftp internetshutdowns fixtheweb lazyweb socialweb mozillahubs webmention + astronomy + telescope mercury pluto galaxy venus mars amateurastronomy uranus nebula astronomy neptune space jupiter blackhole asteroid BackYardAstronomy moon observatory saturn milkyway - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT history - heirloom history makeinghistory anarchisthistory + heirloom history makeinghistory anarchisthistory computerhistory - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT gardening - sporespondence blockade inde mastogarden deno cabbage bundeswehr onions bordeaux datenschleuder florespondence garden thyme DailyFlowers acu kinderbijslag permaculture papuamerdeka lag gardens flowers gardening plants devilslettuce fahrräder golden toeslagenaffaire + sporespondence blockade inde mastogarden kinder independant communitygardening deno cabbage bundeswehr onions bordeaux datenschleuder florespondence garden thyme DailyFlowers acu kinderbijslag permaculture papuamerdeka lag gardens flowers gardening plants devilslettuce fahrräder golden toeslagenaffaire - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT conferences - debconf talk fossdem FreedomBoxSummit apconf2020 schmoocon summit confidenceTricks minidebconf rc3worldleaks emacsconf MCH2021 ox defcon flossevent conf rC3 rC3World conference flossconf apconf rC3one smalltalk C3 config + debconf FOSDEM talk fossdem FreedomBoxSummit apconf2020 schmoocon summit confidenceTricks minidebconf rc3worldleaks emacsconf MCH2021 ox defcon flossevent conf rC3 rC3World conference flossconf apconf rC3one smalltalk C3 config - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT news - report news Wikileaks newsletter newsflash rt bbc doubledownnews journalism SkyNews + report news flash Wikileaks newsletter newsflash rt bbc doubledownnews reuters theguardian newsboat journalism SkyNews - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT cats - Cat dailycatpic dxp DailyCatVid dx katze kotorico CatsOfMastodon Leopard catbellies LapCats + Cat dailycatpic dxp DailyCatVid dx katze kotorico CatsOfMastodon Leopard catbellies LapCats qualitätskatzen - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT employment - InterviewQuestions mywork reproductivework bullshitjobs antiwork kreaturworks worklog hire hirefedi carework nowhiring obs obsolescence work jobs sexworker + InterviewQuestions mywork hiring reproductivework workinprogress bullshitjobs antiwork kreaturworks worklog hire hirefedi carework nowhiring obs obsolescence work flossjobs jobs sexworker - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT radio - cbradio hamr why whydopeopledoshitlikethis macintosh amateurradio radiohost oshw localization vantascape vantaradio ca radio healthcare listening hamradio FreeAllPoliticalPrisoners card10 radiobroadcasting radioshow local noshame osh hackerpublicradio california listeningtonow radiobroadcast mastoradio spazradio anonradio io + cbradio hamr why tootlabradio whydopeopledoshitlikethis macintosh amateurradio radiohost radiokapital oshw localization vantaradio ca radio healthcare listening hamradio FreeAllPoliticalPrisoners card10 radiobroadcasting radioshow local radio3 noshame osh audycja hackerpublicradio audycjaradiowa california listeningtonow radiobroadcast mastoradio spazradio anonradio kolektywneradio io api - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT economics - workercoop bank bitcoin theWorkshop feministeconomics WealthConcentration disabilitycrowdfund coops valuesovereignty funding platformcoop usebitcoin workercoops economics value business platformcooperatives shopping displacement shop plaintextaccounting crowdfund RIPpla bankingCartel startups HenryGeorge plant crowdfunding limitstogrowth companies sharingiscaring techcoops disability micropatronage lgbtcrowdfund monetize smallbusiness pla kommerzialisierung GitPay gdp deplatforming coop smallbusinesses whyBitcoin infoshop limits values banks planetary plannedObsolence + workercoop bank bitcoin theWorkshop feministeconomics WealthConcentration coops valuesovereignty funding platformcoop usebitcoin consommation workercoops economics value business platformcooperatives exoplanets shopping displacement shop plaintextaccounting crowdfund RIPpla bankingCartel startups HenryGeorge plant economíasolidaria disablitycrowdfund crowdfunding limitstogrowth companies sharingiscaring techcoops disability micropatronage lgbtcrowdfund monetize smallbusiness pla kommerzialisierung GitPay gdp deplatforming coop smallbusinesses whyBitcoin infoshop limits values banks planetary plannedObsolence - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT years - newyearsresolutions Year2020 year 1yrago newyear happynewyear 5yrsago newyearseve + newyearsresolutions resolutions Year2020 year 1yrago newyear happynewyear 5yrsago newyearseve - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT linux - osdev opensuse linuxisnotanos elementaryos cli shell kde Debian11 slackware openwrt distros nixos nix DebianBullseye ubuntubuzz shareyourdesktop wireguard linuxaudio nixpkgs gtk debian trisquel gnome linuxposting showyourdesktop windowmanager desktop platform ubuntu gnulinux justlinuxthings xubuntu unix fedora centos openmandriva gentoo liveusb usergroup systemd linuxgaming Debian distro destinationlinux gtk3 qubesos i3wm kubuntu JuiceFS haiku linuxisnotaplatform linux EMMS netbsd termux btrfs reproduciblebuilds artix gtk4 archlinuxarm bash archlinux GNUlinux rhel debianinstaller debianindia linuxisajoke + osdev opensuse linuxisnotanos elementaryos cli viernesdeescritorio shell kde Debian11 thisweekinlinux slackware openwrt distros tmux nixos nix DebianBullseye ubuntubuzz shareyourdesktop wireguard linuxaudio nixpkgs gtk debian trisquel gnome linuxposting showyourdesktop windowmanager desktop platform ubuntu gnulinux aur justlinuxthings xubuntu unix fedora centos openmandriva gentoo liveusb usergroup systemd linuxgaming Debian distro destinationlinux gtk3 escritoriognulinux qubesos i3wm kubuntu JuiceFS reproducible haiku linuxisnotaplatform linux EMMS raspbian netbsd shellmustfall termux btrfs reproduciblebuilds artix gtk4 archlinuxarm bash archlinux linuxconfau GNUlinux rhel debianinstaller debianindia linuxisajoke suse linuxconsole - Sun, 24 Jan 2021 10:52:55 UT - - - photos - nikon 90mm photography photo photogrpahy tokyocameraclub photos photoshop camera cameras myphoto picture streetphotography photoreference - - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT crafts - coloredpencil topic_imadethis hackerexchange textile upholstery hackgregator dust3d hackers hackerspaces sanding solvespace sundiy maker knitting hack biohacking wip jewelry diy upcycling woodworking 3dcad origami makers quilting hacker quilt 3dmodel tinkering hacking woodwork ceramics embroidery shacks teardown + topic_imadethis hackerexchange textile upholstery hackgregator shack dust3d hackerspaces sanding solvespace sundiy maker knitting hack calligraphy biohacking wip jewelry diy upcycling woodworking 3dcad origami makers quilting hacker quilt weaving 3dmodel tinkering hacking woodwork ceramics embroidery shacks teardown - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT pets catpics catofmastodon TheRabbitHole reEducationCamp mastodogs rats catbehaviour Coolcats petrats dogsofmastodon gentrification broadcats fostercats cats kittens pet dog caturday catsofmastodon cute catstodon dogs mastocats notpixiethecat londoninnercitykitties cat furry catcontent - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT art - paperart CreativeToots Linke water urban glassart artalley artvsartist2020 abstract bsd earthship dccomics circuitsculpture watercolor memes autisticartist barrigòtic art open krita urbanart queerart deviantart adultcolouring source collage jordanlynngribbleart linkedin thinkabout openai harmreductionart openmoko openra wallpaper agriculture streetart coverart stickers fiberart MastoArt particl ParticlV3 culture opencl fiberarts polArt ink painting opencoop digitalart comic artwork openbsd mandala politicalcartoon xkcd comics mastoart illustration artopencall gnuimagemanipulationprogram os wireart cartoon webcomic furryart DisabledArtist pink sticker enbyart artbreeder arttherapy TattoosOfTheFediverse digitalpainting artvsartist abstractart drawing sculpture artist meme cultureshipnames concretepoetry artwithopensource commissions opencallforartists commissionsopen fountainpenink peppertop visionaryart blackartist zine artists genart stickerei pixelart alisajart WaterDrinkers opencollective openrailwaymap JuliaHartleyBrewer artistsOfMastodon + paperart CreativeToots Linke water urban glassart martialarts artalley artvsartist2020 abstract bsd earthship poe dccomics inkscape circuitsculpture watercolor memes autisticartist barrigòtic art krita urbanart queerart deviantart CircusInPlace drawings adultcolouring source openstreeetmap collage jordanlynngribbleart linkedin thinkabout PartyPooperPost openai harmreductionart openmoko openra wallpaper political agriculture streetart coverart stickers fiberart pcb MastoArt particl ParticlV3 culture opencl fiberarts polArt ink painting opencoop digitalart comic sartre artwork openbsd mandala politicalcartoon xkcd comics mastoart illustration artopencall gnuimagemanipulationprogram os wireart cartoon webcomic irc furryart DisabledArtist pink generativeart sticker enbyart artbreeder 17maart arttherapy fractal TattoosOfTheFediverse digitalpainting artvsartist abstractart drawing circular sculpture artist pcbart meme cultureshipnames concretepoetry artwithopensource commissions opencallforartists commissionsopen fountainpenink peppertop visionaryart blackartist zine artists genart stickerei pixelart alisajart WaterDrinkers opencollective openrailwaymap JuliaHartleyBrewer artistsOfMastodon - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + + + war + Myanmarmilitarycoup civilwar antiwar bomber coup tank landmine military autonomousweapons army Etankstelle weaponsofmathdestruction conflict navy warplane fort guns Myanmarcoup weapons siege battle WMD wmd airforce forth + + Thu, 04 Feb 2021 10:01:14 UT games - minecraft tetris99 ageofempires TerraNil runequest boardgames computergames fucknintendo gameassets FediDesign gamedesign chess nintendoswitch mud indiegame game 0ad gameart opengameart sign asset ttrpg gamedev guildwars2 TetrisGore gaming gamemaker gameing nintendo roleplayinggames Gamesphere rpg tetris dosgaming DnD cyber2077 tarot cyberpunk2077 gamesforcats FreeNukum supermariomaker2 neopets minetest guildwars dnd games + minecraft tetris99 gamestop ageofempires TerraNil runequest boardgames computergames fucknintendo gameassets gamestonk FediDesign puzzle gamedesign chess nintendoswitch mud indiegame game 0ad gameart opengameart sign asset ttrpg gamedev guildwars2 TetrisGore gaming gamemaker gameing nintendo roleplayinggames Gamesphere rpg gamespot tetris dosgaming DnD cyber2077 tarot cyberpunk2077 gamesforcats FreeNukum supermariomaker2 neopets minetest guildwars dnd games - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT legal - eek hfgkarlsruhe amro SpreekJeUitBekenKleur GameSphere OnlineHarmsBill laipower gdpr intros Anticritique learning peekier rms mojeek digitalservicesact geekproblem dmca + eek hfgkarlsruhe amro remotelearning SpreekJeUitBekenKleur GameSphere OnlineHarmsBill laipower gdpr intros Anticritique learning energyflow peekier rms mojeek digitalservicesact geekproblem dmca - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT climate - energy renewables clouds renewableenergy amp climateemergency climate windenergy coal sciencefiction skypack globalwarming climatechange weather climatecamp windpower pollution global science fossilfuels sky climatescience climateaction climatecrisis + energy renewables clouds renewableenergy amp climateemergency climatechos ClimateAction climate climateracism windenergy coal sciencefiction skypack poll globalwarming climatechange weather ragingqueerenergy climatecamp windpower pollution global science fossilfuels Climate sky climatescience climateaction ClimateCrisis climatecrisis - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT audio feed audioproduction pulseaudio audi audiofeedback audio - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT indymedia - visionontv tredtionalmedia degeek globleIMC indymediaback pga indymedia networking hs2IMC indymediaIMC network roadsIMC stupidindivialisam omn tv roadstonowhereIMC UKIMC 4opens openmedianetwork + visionontv tredtionalmedia degeek globleIMC indymediaback pga indymedia networking stupid hs2IMC indymediaIMC network roadsIMC stupidindivialisam lifecult omn tv roadstonowhereIMC UKIMC 4opens openmedianetwork - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT media - livestreaming mainstreaming stream trad selfsustainable kawaiipunkstreams mainstream streaming weAreAllCrazy maiabeyrouti sustainability diymedia submedia theatlantic traditionalmedia videos newsmedia wikimedia railroads taina ai realmedia media independentmedia theintercept + livestreaming mainstreaming stream trad selfsustainable kawaiipunkstreams mainstream streaming weAreAllCrazy maiabeyrouti sustainability diymedia submedia theatlantic traditionalmedia videos newsmedia wikimedia railroads documentary streamers tootstream taina ai realmedia media independentmedia theintercept - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + + + gender + transistors broketrans transwomen transparency transcrowdfund womensart female nonbinary vantascape blacktransmagic trans transpositivity transphobia women estradiol queer genderQuiz gender genderqueerpositivity woman transrights + + Thu, 04 Feb 2021 10:01:14 UT activism - protestor grassroot FreeLibreOpen g20 bekannt riseup sflc DanniVive reuse fsfe softwarefreedom ann activist xr SustainableUserFreedom directaction eff change openrightsgroup protest JeffreySDukes actiondirecte kroymann HS2 ngo MarcWittmann fsf StopHS2 grassroots antireport ClimateJustice BLM changeisinyourhands conservancy ngos JefferySaunders LiliannePloumen mongodb Kolektiva XR freeolabini announcement isolateByoblu annieleonard + protestor clearchannel grassroot FreeLibreOpen g20 bekannt farmersprotest protests riseup sflc DanniVive reuse stopspyingonus keepiton FSFE20 fsfe softwarefreedom ann activist xr SustainableUserFreedom seachange directaction eff change openrightsgroup protest icantbreathe JeffreySDukes actiondirecte kroymann HS2 ngo MarcWittmann fsf fsfi StopHS2 grassroots HS2Rebellion antireport ClimateJustice BLM ExtinctionRebellion changeisinyourhands conservancy ngos JefferySaunders LiliannePloumen mongodb climatechangeadaptation Kolektiva XR freeolabini announcement isolateByoblu annieleonard - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT questions - askmastodon askfedi question askmasto askfediverse ask askfosstodon + askmastodon askfedi question askmasto askfediverse totallyaskingforafriend ask askfosstodon - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT birds - RainbowBeeEater pigeon pigeonlover bird + RainbowBeeEater pigeon pigeonlover bird birdwatch - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT ethics digitalethics ethics ethicallicense license ethical - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT disability ableism disabled - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT podcasts podcasting IntergalacticWasabiHour podcast tilde til postmarketOSpodcast tilderadio tildes podcasts tildeverse smallisbeautiful fertilizers tilvids - Sun, 24 Jan 2021 10:52:55 UT - - - gender - broketrans transwomen transcrowdfund womensart female nonbinary trans transpositivity transphobia women estradiol queer ragingqueerenergy genderQuiz gender genderqueerpositivity woman transrights - - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT culture etiquette - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT funding - donate disabledcrowdfund fundraiser led patreon + donate disabilitycrowdfund disabledcrowdfund fundraiser BreakWalledGardens ngizero led patreon - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT identity boomer - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + + + political + copservation rog linguisticProgramming + + Thu, 04 Feb 2021 10:01:14 UT fashion - brasil fashionistas fashionesta bras fashionista fashion socks patches feditats + brasil fashionistas fashionesta bras fashionista fashion punkwear socks patches feditats zebras - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT techbros - einfachredeneben redhat hackernews red reddit redis + securedrop einfachredeneben coloredpencil redhat hackernews red reddit redis - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT month - april july march chapril october november august june december september may feburary january month + april july march chapril october november august june december september may feburary jejune january blackhistorymonth month - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT - people - Andrychów RichardDWolff noamchomsky monbiot aldoushuxley aaronswartz relationships AskVanta James Mary John Patricia Robert Bob Jennifer Michael Linda William Elizabeth David Barbara Richard Susan Joseph Jessica Thomas Sarah Charles Karen Christopher Chris Nancy Daniel Lisa Matthew Margaret Anthony Betty Donald Sandra Mark Ashley Paul Dorothy Steven Kimberly Andrew Emily Kenneth Donna Joshua Michelle Kevin Carol Brian Amanda George Melissa Edward Deborah Ronald Stephanie Timothy Rebecca Jason Laura Jeffrey Jeff Sharon Ryan Cynthia Jacob Kathleen Gary Amy Nicholas Shirley Eric Angela Jonathan Helen Stephen Anna Larry Brenda Justin Pamela Scott Nicole Brandon Samantha Benjamin Katherine Samuel Emma Frank Ruth Gregory Christine Raymond Catherine Alexander Debra Patrick Rachel Jack Carolyn Dennis Janet Jerry Virginia Tyler Maria Aaron Heather Jose Diane Henry Julie Adam Joyce Douglas Victoria Nathan Kelly Peter Christina Zachary Lauren Kyle Joan Walter Evelyn Harold Olivia Jeremy Judith Ethan Megan Carl Cheryl Keith Martha Roger Andrea Gerald Frances Christian Hannah Terry Jacqueline Sean Ann Arthur Gloria Austin Jean Noah Kathryn Lawrence Alice Jesse Teresa Joe Sara Bryan Janice Billy Doris Jordan Madison Albert Julia Dylan Grace Bruce Judy Willie Abigail Gabriel Marie Alan Denise Juan Beverly Logan Amber Wayne Theresa Ralph Marilyn Roy Danielle Eugene Diana Randy Brittany Vincent Natalie Russell Sophia Louis Rose Philip Isabella Bobby Alexis Johnny Kayla Bradley Charlotte james mary john patricia robert bob jennifer michael linda william elizabeth david barbara richard susan joseph jessica thomas sarah charles karen christopher chris nancy daniel lisa matthew margaret anthony betty donald sandra mark ashley paul dorothy steven kimberly andrew emily kenneth donna joshua michelle kevin carol brian amanda george melissa edward deborah ronald stephanie timothy rebecca jason laura jeffrey jeff sharon ryan cynthia jacob kathleen gary amy nicholas shirley eric angela jonathan helen stephen anna larry brenda justin pamela scott nicole brandon samantha benjamin katherine samuel emma frank ruth gregory christine raymond catherinealexander debra patrickrachel jack carolyn dennis janet jerry virginia tyler maria aaron heather jose diane henry julie adam joyce douglas victoria nathan kelly peter christina zachary lauren kyle joan walter evelyn harold olivia jeremy judith ethan megan carl cheryl keith martha roger andrea gerald frances christian hannah terry jacqueline sean ann arthurgloria austin jean noahkathryn lawrence alice jesse teresa joesara bryan janice billy doris jordan madison albert julia dylan grace bruce judy willie abigail gabrielmarie alan denise juan beverly logan amber wayne theresa ralph marilyn roy danielle eugene diana randy brittany vincent natalie russell sophia louis rose philip isabella bobby alexis johnny kayla bradley charlotte + welfare + universalcredit welfare - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT books - justhollythings bookclub earthsea ebooks book amreading failbook bookwyrm bookreview reading theLibrary wayfarers fakebook books bookreviews ebook epub cookbook + justhollythings bookclub earthsea ebooks book amreading republicday failbook bookwyrm bookreview reading theLibrary wayfarers fakebook books bookreviews ebook epub cookbook - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT comedy laugh humour satire irony standup funny humor - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT health - medical burnout cannabis medicine treatment EmotionalFirstAid safeabortion4all maryjane autistic neurodivergent health motion meds marijuana mentalhealth healthy + medical burnout cannabis medicine treatment EmotionalFirstAid safeabortion4all maryjane autistic neurodivergent health motion meds marijuana mentalhealth healthy neurodiverse asperger autismus - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT facts funfact didyouknow lifehack - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT ai machinelearning - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT seasons - spring autumn winter ice santa summer solstice wintersolstice + spring autumn abolishice winter ice santa summer onlyoffice icedipping solstice wintersolstice pin - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT philosophy minimalism maximalist maximalism philosophy stoic postmodernism minimalist - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT fiction cyberpunk thehobbit fiction genrefiction - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT introductions newhere firsttoot recommends Introduction Introductions introduction intro introductions - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT scifi - startrekdiscovery startrek starwars babylon5 + startrekdiscovery startrek starwars war babylon5 - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT bots - bot humanrobotinteraction + bot Militanzverbot militanzverbot humanrobotinteraction - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + + + privacy + privacyaware dataprivacyday surveillancestate Privacy privacypolicy surveillancetech privacymatters surveillance dataprivacy privacywashing privacy DataPrivacyDay2020 WhatsappPrivacy + + Thu, 04 Feb 2021 10:01:14 UT + + + microcontroller + e microcontroller troll arduinoide arduino + + Thu, 04 Feb 2021 10:01:14 UT religion - neopagan pagan catholic genesis + neopagan pagan catholic paganism genesis - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT help mastohelp helpful help - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT obituaries tripadvisor rip - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT - privacy - Privacy privacypolicy surveillancetech privacymatters surveillance dataprivacy privacywashing privacy WhatsappPrivacy + commons + open - Sun, 24 Jan 2021 10:52:55 UT - - - astronomy - telescope mercury venus mars amateurastronomy astronomy space jupiter saturn neptune uranus pluto BackYardAstronomy moon saturn milkyway asteroid galaxy nebula blackhole observatory - - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT photography - landscapephotography + landscapephotography landscape - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT moderation fedblock - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT entertainment - legallyblonde watching Thundercat entertainment me meow un nowwatching themandalorian nt + legallyblonde watching Thundercat makingof entertainment me meow un nowwatching themandalorian nt - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT languages lojban gaelic - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT environment s climatechaos - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT election voted vote - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + + + #music + trance + + Thu, 04 Feb 2021 10:01:14 UT other - independant itscomplicated misc OCUPACAOCARLOSMARIGHELLA + itscomplicated misc OCUPACAOCARLOSMARIGHELLA - Sun, 24 Jan 2021 10:52:55 UT - - - microcontroller - esp32 microcontroller arduino - - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT licenses copyright creative creativetoots common creativecommons - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT education education teach tutorial - Sun, 24 Jan 2021 10:52:55 UT - - - war - weaponsofmathdestruction wmd WMD siege fort weapons tank guns military bomber warplane conflict battle antiwar civilwar army navy airforce landmine - - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT scotland glasgow highlands edinburgh loch - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + + + agriculture + farmers + + Thu, 04 Feb 2021 10:01:14 UT + + + #software + flatpak + + Thu, 04 Feb 2021 10:01:14 UT microcontrollers esp8266 esp32 - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT france Macronavirus - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT travel travel taxi - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT architecture concrete - Sun, 24 Jan 2021 10:52:55 UT + Thu, 04 Feb 2021 10:01:14 UT + From b5a27330fb8a2efdab1160e30c4fdbc628362a36 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 10:30:33 +0000 Subject: [PATCH 09/18] Less contrast --- theme/solidaric/theme.json | 45 +++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/theme/solidaric/theme.json b/theme/solidaric/theme.json index bc6c5ff23..69cc6e057 100644 --- a/theme/solidaric/theme.json +++ b/theme/solidaric/theme.json @@ -1,4 +1,9 @@ { + "button-fg-highlighted": "#eeeeee", + "button-selected-text": "#eeeeee", + "button-text": "#eeeeee", + "publish-button-text": "#eeeeee", + "column-left-header-color": "#eeeeee", "newswire-publish-icon": "True", "full-width-timeline-buttons": "False", "icons-as-buttons": "False", @@ -28,17 +33,17 @@ "font-size4": "24px", "font-size5": "22px", "rgba(0, 0, 0, 0.5)": "rgba(0, 0, 0, 0.0)", - "main-bg-color": "white", - "login-bg-color": "white", - "options-bg-color": "white", - "post-bg-color": "white", - "timeline-posts-background-color": "white", + "main-bg-color": "#eeeeee", + "login-bg-color": "#eeeeee", + "options-bg-color": "#eeeeee", + "post-bg-color": "#eeeeee", + "timeline-posts-background-color": "#eeeeee", "header-bg-color": "#ddd", - "column-left-color": "white", - "main-bg-color-dm": "white", + "column-left-color": "#eeeeee", + "main-bg-color-dm": "#eeeeee", "link-bg-color": "transparent", - "main-bg-color-reply": "white", - "main-bg-color-report": "white", + "main-bg-color-reply": "#eeeeee", + "main-bg-color-report": "#eeeeee", "main-header-color-roles": "#ebebf0", "cw-color": "#2d2c37", "main-fg-color": "#2d2c37", @@ -54,26 +59,26 @@ "main-visited-color": "#232c37", "options-main-visited-color": "#232c37", "text-entry-foreground": "#111", - "text-entry-background": "white", - "font-color-header": "black", + "text-entry-background": "#eeeeee", + "font-color-header": "#2d2c37", "dropdown-fg-color": "#222", "dropdown-fg-color-hover": "#222", - "dropdown-bg-color": "white", + "dropdown-bg-color": "#eeeeee", "dropdown-bg-color-hover": "lightgrey", - "color: #FFFFFE;": "color: black;", - "calendar-bg-color": "white", - "lines-color": "black", - "day-number": "black", + "color: #FFFFFE;": "color: #2d2c37;", + "calendar-bg-color": "#eeeeee", + "lines-color": "#2d2c37", + "day-number": "#2d2c37", "day-number2": "#282c37", - "place-color": "black", + "place-color": "#2d2c37", "event-color": "#282c37", - "today-foreground": "white", + "today-foreground": "#eeeeee", "today-circle": "red", "event-background": "lightblue", - "event-foreground": "white", + "event-foreground": "#eeeeee", "title-text": "#282c37", "title-background": "#ccc", - "gallery-text-color": "black", + "gallery-text-color": "#2d2c37", "quote-right-margin": "0", "line-spacing": "150%", "header-font": "'solidaric'", From 8ee48bc1abe3687343a1a65297bb6d1686141049 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 10:40:02 +0000 Subject: [PATCH 10/18] More contrast on backgrounds --- theme/solidaric/image.png | Bin 28502 -> 28606 bytes theme/solidaric/options_background.jpg | Bin 12502 -> 12245 bytes theme/solidaric/search_banner.png | Bin 61032 -> 56171 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/theme/solidaric/image.png b/theme/solidaric/image.png index 53e1ab4427e491ef9f54341d5a0e6e8083eb6571..620710a0dca66633d60e8848359e3129436e0fe4 100644 GIT binary patch literal 28606 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 delta 4714 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 TpWQP*6uWew diff --git a/theme/solidaric/search_banner.png b/theme/solidaric/search_banner.png index d9f5b9c41b73e38ca664066f2871449b061c1f1f..f1138f1288ac2a9e64cac4e54ff3a8164c301f83 100644 GIT binary patch literal 56171 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 dO%r_M&Yk_s3-* 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 G1OEphUk@h$ literal 61032 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 From ed1a752182429a697330fa13d3d41fe6df1161cb Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 12:32:13 +0000 Subject: [PATCH 11/18] Devian emoji --- emoji/default_emoji.json | 1 + emoji/devuan.png | Bin 0 -> 8054 bytes 2 files changed, 1 insertion(+) create mode 100644 emoji/devuan.png diff --git a/emoji/default_emoji.json b/emoji/default_emoji.json index 53ce00ddc..2de32ed81 100644 --- a/emoji/default_emoji.json +++ b/emoji/default_emoji.json @@ -541,6 +541,7 @@ "arch": "arch", "archlinux": "arch", "debian": "debian", + "devuan": "devuan", "zorin": "zorin", "solus": "solus", "fedora": "fedora", diff --git a/emoji/devuan.png b/emoji/devuan.png new file mode 100644 index 0000000000000000000000000000000000000000..69dd4340df920e99b850b413b1442107f81caf08 GIT binary patch literal 8054 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 Ef+Tv7NdN!< literal 0 HcmV?d00001 From 9ee84b4dbda5e1f77f884c52061dd68c1a2f05a2 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 12:34:58 +0000 Subject: [PATCH 12/18] Extra emoji --- emoji/default_emoji.json | 1 + 1 file changed, 1 insertion(+) diff --git a/emoji/default_emoji.json b/emoji/default_emoji.json index 2de32ed81..20780feac 100644 --- a/emoji/default_emoji.json +++ b/emoji/default_emoji.json @@ -1,4 +1,5 @@ { + "popcorn": "1F37F", "1stplacemedal": "1F947", "abbutton": "1F18E", "abutton": "1F170", From f5281710904b67b9b17162634ca5a0a0ed0c1d40 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 13:43:56 +0000 Subject: [PATCH 13/18] Check that petname exists --- content.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content.py b/content.py index 4f20267e8..ff5c4aa97 100644 --- a/content.py +++ b/content.py @@ -760,7 +760,8 @@ def addHtmlTags(baseDir: str, httpPrefix: str, following = f.readlines() for handle in following: pet = getPetName(baseDir, nickname, domain, handle) - petnames.append(pet + '\n') + if pet: + petnames.append(pet + '\n') # extract mentions and tags from words longWordsList = [] From d6f7ad20a38b4e56f106c4117b34440153aa04fa Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 16:30:32 +0000 Subject: [PATCH 14/18] Using python3-cryptography Roughtly 18 times speedup on http signatures --- Dockerfile | 3 +-- README.md | 4 ++-- deploy/i2p | 4 ++-- deploy/onion | 4 ++-- gemini/EN/install.gmi | 2 +- httpsig.py | 53 ++++++++++++++++++++++++++----------------- setup.cfg | 2 +- website/EN/index.html | 2 +- 8 files changed, 42 insertions(+), 32 deletions(-) diff --git a/Dockerfile b/Dockerfile index fa0ad6338..9a225af5b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,8 +3,7 @@ ENV DOMAIN=localhost RUN apt-get update && \ apt-get -y install \ imagemagick \ - python3-crypto \ - python3-pycryptodome \ + python3-cryptography \ python3-dateutil \ python3-idna \ python3-requests \ diff --git a/README.md b/README.md index bcf442eed..8a0afc7c5 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ You will need python version 3.7 or later. On Arch/Parabola: ``` bash -sudo pacman -S tor python-pip python-pysocks python-pycryptodome \ +sudo pacman -S tor python-pip python-pysocks python-cryptography \ imagemagick python-requests \ perl-image-exiftool python-dateutil \ certbot flake8 bandit @@ -36,7 +36,7 @@ Or on Debian: sudo apt install -y \ tor python3-socks imagemagick \ python3-setuptools \ - python3-crypto python3-pycryptodome \ + python3-crypto python3-cryptography \ python3-dateutil \ python3-idna python3-requests \ python3-django-timezone-field \ diff --git a/deploy/i2p b/deploy/i2p index 2afeb74ab..79e5d7b7b 100755 --- a/deploy/i2p +++ b/deploy/i2p @@ -60,7 +60,7 @@ fi echo 'Adding Epicyon dependencies' if [ -f /usr/bin/pacman ]; then pacman -Syy - pacman -S --noconfirm python-pip python-pysocks python-pycryptodome \ + pacman -S --noconfirm python-pip python-pysocks python-cryptography \ imagemagick python-pillow python-requests \ perl-image-exiftool python-numpy python-dateutil \ certbot flake8 git i2pd wget qrencode \ @@ -68,7 +68,7 @@ if [ -f /usr/bin/pacman ]; then pip3 install pyLD pyqrcode pypng else apt-get update - apt-get -y install imagemagick python3-crypto python3-pycryptodome \ + apt-get -y install imagemagick python3-crypto python3-cryptography \ python3-dateutil python3-idna python3-requests \ python3-numpy python3-pil.imagetk python3-pip \ python3-setuptools python3-socks python3-idna \ diff --git a/deploy/onion b/deploy/onion index ea99ffea4..983866db6 100755 --- a/deploy/onion +++ b/deploy/onion @@ -35,14 +35,14 @@ EPICYON_PORT=7157 echo 'Adding Epicyon dependencies' if [ -f /usr/bin/pacman ]; then pacman -Syy - pacman -S --noconfirm tor python-pip python-pysocks python-pycryptodome \ + pacman -S --noconfirm tor python-pip python-pysocks python-cryptography \ imagemagick python-pillow python-requests \ perl-image-exiftool python-numpy python-dateutil \ certbot flake8 git qrencode bandit pip3 install pyLD pyqrcode pypng else apt-get update - apt-get -y install imagemagick python3-crypto python3-pycryptodome \ + apt-get -y install imagemagick python3-crypto python3-cryptography \ python3-dateutil python3-idna python3-requests \ python3-numpy python3-pil.imagetk python3-pip \ python3-setuptools python3-socks python3-idna \ diff --git a/gemini/EN/install.gmi b/gemini/EN/install.gmi index 49dfaec68..35a28dba9 100644 --- a/gemini/EN/install.gmi +++ b/gemini/EN/install.gmi @@ -4,7 +4,7 @@ You will need python version 3.7 or later. On a Debian based system: - sudo apt install -y tor python3-socks imagemagick python3-setuptools python3-crypto python3-pycryptodome python3-dateutil python3-idna python3-requests python3-flake8 python3-django-timezone-field python3-pyqrcode python3-png python3-bandit libimage-exiftool-perl certbot nginx wget + sudo apt install -y tor python3-socks imagemagick python3-setuptools python3-crypto python3-cryptography python3-dateutil python3-idna python3-requests python3-flake8 python3-django-timezone-field python3-pyqrcode python3-png python3-bandit libimage-exiftool-perl certbot nginx wget The following instructions install Epicyon to the /opt directory. It's not essential that it be installed there, and it could be in any other preferred directory. diff --git a/httpsig.py b/httpsig.py index 443cd9a2c..a1d852284 100644 --- a/httpsig.py +++ b/httpsig.py @@ -1,4 +1,4 @@ -__filename__ = "posts.py" +__filename__ = "httpsig.py" __author__ = "Bob Mottram" __credits__ = ['lamia'] __license__ = "AGPL3+" @@ -9,26 +9,28 @@ __status__ = "Production" # see https://tools.ietf.org/html/draft-cavage-http-signatures-06 -try: - from Cryptodome.PublicKey import RSA - from Cryptodome.Hash import SHA256 - from Cryptodome.Signature import pkcs1_15 -except ImportError: - from Crypto.PublicKey import RSA - from Crypto.Hash import SHA256 - # from Crypto.Signature import PKCS1_v1_5 - from Crypto.Signature import pkcs1_15 - +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.serialization import load_pem_private_key +from cryptography.hazmat.primitives.serialization import load_pem_public_key +from cryptography.hazmat.primitives.asymmetric import padding +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import utils as hazutils import base64 from time import gmtime, strftime import datetime from utils import getFullDomain +def _getSHA256(msg: str): + digest = hashes.Hash(hashes.SHA256(), backend=default_backend()) + digest.update(msg) + return digest.finalize() + + def messageContentDigest(messageBodyJsonStr: str) -> str: msg = messageBodyJsonStr.encode('utf-8') - digestStr = SHA256.new(msg).digest() - return base64.b64encode(digestStr).decode('utf-8') + hashResult = _getSHA256(msg) + return base64.b64encode(hashResult).decode('utf-8') def signPostHeaders(dateStr: str, privateKeyPem: str, @@ -66,7 +68,8 @@ def signPostHeaders(dateStr: str, privateKeyPem: str, 'content-type': 'application/activity+json', 'content-length': str(contentLength) } - privateKeyPem = RSA.import_key(privateKeyPem) + key = load_pem_private_key(privateKeyPem.encode('utf-8'), + None, backend=default_backend()) # headers.update({ # '(request-target)': f'post {path}', # }) @@ -76,10 +79,14 @@ def signPostHeaders(dateStr: str, privateKeyPem: str, for headerKey in signedHeaderKeys: signedHeaderText += f'{headerKey}: {headers[headerKey]}\n' signedHeaderText = signedHeaderText.strip() - headerDigest = SHA256.new(signedHeaderText.encode('ascii')) + # signedHeaderText.encode('ascii') matches + headerDigest = _getSHA256(signedHeaderText.encode('ascii')) + # print('headerDigest2: ' + str(headerDigest)) # Sign the digest - rawSignature = pkcs1_15.new(privateKeyPem).sign(headerDigest) + rawSignature = key.sign(headerDigest, + padding.PKCS1v15(), + hazutils.Prehashed(hashes.SHA256())) signature = base64.b64encode(rawSignature).decode('ascii') # Put it into a valid HTTP signature format @@ -176,7 +183,8 @@ def verifyPostHeaders(httpPrefix: str, publicKeyPem: str, headers: dict, if debug: print('DEBUG: verifyPostHeaders ' + method) - publicKeyPem = RSA.import_key(publicKeyPem) + pubkey = load_pem_public_key(publicKeyPem.encode('utf-8'), + backend=default_backend()) # Build a dictionary of the signature values signatureHeader = headers['signature'] signatureDict = { @@ -244,16 +252,19 @@ def verifyPostHeaders(httpPrefix: str, publicKeyPem: str, headers: dict, print('DEBUG: signedHeaderList: ' + str(signedHeaderList)) # Now we have our header data digest signedHeaderText = '\n'.join(signedHeaderList) - headerDigest = SHA256.new(signedHeaderText.encode('ascii')) + headerDigest = _getSHA256(signedHeaderText.encode('ascii')) # Get the signature, verify with public key, return result signature = base64.b64decode(signatureDict['signature']) try: - pubKey = pkcs1_15.new(publicKeyPem) - pubKey.verify(headerDigest, signature) + pubkey.verify( + signature, + headerDigest, + padding.PKCS1v15(), + hazutils.Prehashed(hashes.SHA256())) return True - except (ValueError, TypeError): + except BaseException: if debug: print('DEBUG: verifyPostHeaders pkcs1_15 verify failure') return False diff --git a/setup.cfg b/setup.cfg index f7985ac16..3f3e838ff 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,7 +29,7 @@ install_requires = idna >= 2.5, < 3 numpy >= 1.20.0, < 2 pillow >= 8.1.0, < 9 - pycryptodome >= 3.9.9, < 4 + cryptography pyqrcode >= 1.2.1, < 2 python-dateutil >= 2.8.1, < 3 requests >= 2.25.1, < 3 diff --git a/website/EN/index.html b/website/EN/index.html index 39a8b3af8..ea28c162b 100644 --- a/website/EN/index.html +++ b/website/EN/index.html @@ -1267,7 +1267,7 @@

You will need python version 3.7 or later.

On a Debian based system:

-

sudo apt install -y tor python3-socks imagemagick python3-setuptools python3-crypto python3-pycryptodome python3-dateutil python3-idna python3-requests python3-flake8 python3-django-timezone-field python3-pyqrcode python3-png python3-bandit libimage-exiftool-perl certbot nginx wget

+

sudo apt install -y tor python3-socks imagemagick python3-setuptools python3-crypto python3-cryptography python3-dateutil python3-idna python3-requests python3-flake8 python3-django-timezone-field python3-pyqrcode python3-png python3-bandit libimage-exiftool-perl certbot nginx wget

From 22b946257d0bc35b3350d01b19372c83182d197b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 17:07:17 +0000 Subject: [PATCH 15/18] Remove magic public key on webfinger See https://github.com/tootsuite/mastodon/pull/11280 --- webfinger.py | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/webfinger.py b/webfinger.py index 451aaaae4..29c63bad7 100644 --- a/webfinger.py +++ b/webfinger.py @@ -6,13 +6,6 @@ __maintainer__ = "Bob Mottram" __email__ = "bob@freedombone.net" __status__ = "Production" -import base64 -try: - from Cryptodome.PublicKey import RSA - from Cryptodome.Util import number -except ImportError: - from Crypto.PublicKey import RSA - from Crypto.Util import number import os import urllib.parse from session import getJson @@ -97,19 +90,6 @@ def webfingerHandle(session, handle: str, httpPrefix: str, return result -def _generateMagicKey(publicKeyPem) -> str: - """See magic_key method in - https://github.com/tootsuite/mastodon/blob/ - 707ddf7808f90e3ab042d7642d368c2ce8e95e6f/app/models/account.rb - """ - privkey = RSA.importKey(publicKeyPem) - modBytes = number.long_to_bytes(privkey.n) - mod = base64.urlsafe_b64encode(modBytes).decode("utf-8") - expBytes = number.long_to_bytes(privkey.e) - pubexp = base64.urlsafe_b64encode(expBytes).decode("utf-8") - return f"data:application/magic-public-key,RSA.{mod}.{pubexp}" - - def storeWebfingerEndpoint(nickname: str, domain: str, port: int, baseDir: str, wfJson: {}) -> bool: """Stores webfinger endpoint for a user to a file @@ -168,10 +148,6 @@ def createWebfingerEndpoint(nickname: str, domain: str, port: int, "href": personId, "rel": "self", "type": "application/activity+json" - }, - { - "href": _generateMagicKey(publicKeyPem), - "rel": "magic-public-key" } ], "subject": subjectStr From 3f248ce33bf26f4f99bc1fe3416ae518fa6816ea Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 17:26:00 +0000 Subject: [PATCH 16/18] Generate signing keys using python3-cryptography --- person.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/person.py b/person.py index 2392b271e..71422ac42 100644 --- a/person.py +++ b/person.py @@ -13,10 +13,9 @@ import shutil import pyqrcode from random import randint from pathlib import Path -try: - from Cryptodome.PublicKey import RSA -except ImportError: - from Crypto.PublicKey import RSA +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.asymmetric import rsa +from cryptography.hazmat.primitives import serialization from shutil import copyfile from webfinger import createWebfingerEndpoint from webfinger import storeWebfingerEndpoint @@ -44,9 +43,23 @@ from utils import getConfigParam def generateRSAKey() -> (str, str): - key = RSA.generate(2048) - privateKeyPem = key.exportKey("PEM").decode("utf-8") - publicKeyPem = key.publickey().exportKey("PEM").decode("utf-8") + key = rsa.generate_private_key( + public_exponent=65537, + key_size=2048, + backend=default_backend() + ) + privateKeyPem = key.private_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption() + ) + pubkey = key.public_key() + publicKeyPem = pubkey.public_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PublicFormat.SubjectPublicKeyInfo, + ) + privateKeyPem = privateKeyPem.decode("utf-8") + publicKeyPem = publicKeyPem.decode("utf-8") return privateKeyPem, publicKeyPem From 0e9aa4766fb93b23aa24702b07408a70638d9771 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 18:18:31 +0000 Subject: [PATCH 17/18] Move jsonld signatures to python3-cryptography --- httpsig.py | 13 ++++--------- linked_data_sig.py | 48 +++++++++++++++++++++++++++------------------- utils.py | 10 ++++++++++ 3 files changed, 42 insertions(+), 29 deletions(-) diff --git a/httpsig.py b/httpsig.py index a1d852284..2b0c9eb1b 100644 --- a/httpsig.py +++ b/httpsig.py @@ -19,17 +19,12 @@ import base64 from time import gmtime, strftime import datetime from utils import getFullDomain - - -def _getSHA256(msg: str): - digest = hashes.Hash(hashes.SHA256(), backend=default_backend()) - digest.update(msg) - return digest.finalize() +from utils import getSHA256 def messageContentDigest(messageBodyJsonStr: str) -> str: msg = messageBodyJsonStr.encode('utf-8') - hashResult = _getSHA256(msg) + hashResult = getSHA256(msg) return base64.b64encode(hashResult).decode('utf-8') @@ -80,7 +75,7 @@ def signPostHeaders(dateStr: str, privateKeyPem: str, signedHeaderText += f'{headerKey}: {headers[headerKey]}\n' signedHeaderText = signedHeaderText.strip() # signedHeaderText.encode('ascii') matches - headerDigest = _getSHA256(signedHeaderText.encode('ascii')) + headerDigest = getSHA256(signedHeaderText.encode('ascii')) # print('headerDigest2: ' + str(headerDigest)) # Sign the digest @@ -252,7 +247,7 @@ def verifyPostHeaders(httpPrefix: str, publicKeyPem: str, headers: dict, print('DEBUG: signedHeaderList: ' + str(signedHeaderList)) # Now we have our header data digest signedHeaderText = '\n'.join(signedHeaderList) - headerDigest = _getSHA256(signedHeaderText.encode('ascii')) + headerDigest = getSHA256(signedHeaderText.encode('ascii')) # Get the signature, verify with public key, return result signature = base64.b64decode(signatureDict['signature']) diff --git a/linked_data_sig.py b/linked_data_sig.py index 9f4b009a7..5a1c5dbdd 100644 --- a/linked_data_sig.py +++ b/linked_data_sig.py @@ -11,18 +11,15 @@ __status__ = "Production" import base64 import hashlib from datetime import datetime - -try: - from Cryptodome.PublicKey import RSA - from Cryptodome.Hash import SHA256 - from Cryptodome.Signature import pkcs1_5 as PKCS1_v1_5 -except ImportError: - from Crypto.PublicKey import RSA - from Crypto.Hash import SHA256 - from Crypto.Signature import PKCS1_v1_5 - +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.serialization import load_pem_private_key +from cryptography.hazmat.primitives.serialization import load_pem_public_key +from cryptography.hazmat.primitives.asymmetric import padding +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import utils as hazutils from pyjsonld import normalize from context import hasValidContext +from utils import getSHA256 def _options_hash(doc: {}) -> str: @@ -73,14 +70,23 @@ def verifyJsonSignature(doc: {}, publicKeyPem: str) -> bool: """ if not hasValidContext(doc): return False - key = RSA.importKey(publicKeyPem) + pubkey = load_pem_public_key(publicKeyPem.encode('utf-8'), + backend=default_backend()) to_be_signed = _options_hash(doc) + _doc_hash(doc) signature = doc["signature"]["signatureValue"] - signer = PKCS1_v1_5.new(key) # type: ignore - digest = SHA256.new() - digest.update(to_be_signed.encode("utf-8")) + + digest = getSHA256(to_be_signed.encode("utf-8")) base64sig = base64.b64decode(signature) - return signer.verify(digest, base64sig) # type: ignore + + try: + pubkey.verify( + base64sig, + digest, + padding.PKCS1v15(), + hazutils.Prehashed(hashes.SHA256())) + return True + except BaseException: + return False def generateJsonSignature(doc: {}, privateKeyPem: str) -> None: @@ -98,9 +104,11 @@ def generateJsonSignature(doc: {}, privateKeyPem: str) -> None: doc["signature"] = options to_be_signed = _options_hash(doc) + _doc_hash(doc) - key = RSA.importKey(privateKeyPem) - signer = PKCS1_v1_5.new(key) - digest = SHA256.new() - digest.update(to_be_signed.encode("utf-8")) - sig = base64.b64encode(signer.sign(digest)) # type: ignore + key = load_pem_private_key(privateKeyPem.encode('utf-8'), + None, backend=default_backend()) + digest = getSHA256(to_be_signed.encode("utf-8")) + signature = key.sign(digest, + padding.PKCS1v15(), + hazutils.Prehashed(hashes.SHA256())) + sig = base64.b64encode(signature) options["signatureValue"] = sig.decode("utf-8") diff --git a/utils.py b/utils.py index 34c5773b4..3e7c8c4ec 100644 --- a/utils.py +++ b/utils.py @@ -18,6 +18,16 @@ import idna from pprint import pprint from calendar import monthrange from followingCalendar import addPersonToCalendar +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import hashes + + +def getSHA256(msg: str): + """Returns a SHA256 hash of the given string + """ + digest = hashes.Hash(hashes.SHA256(), backend=default_backend()) + digest.update(msg) + return digest.finalize() def _localNetworkHost(host: str) -> bool: From 6bbb23d5943e2c0dc25e2e6e629c505a407fdff0 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 4 Feb 2021 18:40:54 +0000 Subject: [PATCH 18/18] Remove unused package from documentation --- README.md | 2 +- deploy/i2p | 2 +- deploy/onion | 2 +- gemini/EN/install.gmi | 2 +- website/EN/index.html | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8a0afc7c5..6c2c41ea5 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Or on Debian: sudo apt install -y \ tor python3-socks imagemagick \ python3-setuptools \ - python3-crypto python3-cryptography \ + python3-cryptography \ python3-dateutil \ python3-idna python3-requests \ python3-django-timezone-field \ diff --git a/deploy/i2p b/deploy/i2p index 79e5d7b7b..a45658228 100755 --- a/deploy/i2p +++ b/deploy/i2p @@ -68,7 +68,7 @@ if [ -f /usr/bin/pacman ]; then pip3 install pyLD pyqrcode pypng else apt-get update - apt-get -y install imagemagick python3-crypto python3-cryptography \ + apt-get -y install imagemagick python3-cryptography \ python3-dateutil python3-idna python3-requests \ python3-numpy python3-pil.imagetk python3-pip \ python3-setuptools python3-socks python3-idna \ diff --git a/deploy/onion b/deploy/onion index 983866db6..da3a776dd 100755 --- a/deploy/onion +++ b/deploy/onion @@ -42,7 +42,7 @@ if [ -f /usr/bin/pacman ]; then pip3 install pyLD pyqrcode pypng else apt-get update - apt-get -y install imagemagick python3-crypto python3-cryptography \ + apt-get -y install imagemagick python3-cryptography \ python3-dateutil python3-idna python3-requests \ python3-numpy python3-pil.imagetk python3-pip \ python3-setuptools python3-socks python3-idna \ diff --git a/gemini/EN/install.gmi b/gemini/EN/install.gmi index 35a28dba9..5b42d03fd 100644 --- a/gemini/EN/install.gmi +++ b/gemini/EN/install.gmi @@ -4,7 +4,7 @@ You will need python version 3.7 or later. On a Debian based system: - sudo apt install -y tor python3-socks imagemagick python3-setuptools python3-crypto python3-cryptography python3-dateutil python3-idna python3-requests python3-flake8 python3-django-timezone-field python3-pyqrcode python3-png python3-bandit libimage-exiftool-perl certbot nginx wget + sudo apt install -y tor python3-socks imagemagick python3-setuptools python3-cryptography python3-dateutil python3-idna python3-requests python3-flake8 python3-django-timezone-field python3-pyqrcode python3-png python3-bandit libimage-exiftool-perl certbot nginx wget The following instructions install Epicyon to the /opt directory. It's not essential that it be installed there, and it could be in any other preferred directory. diff --git a/website/EN/index.html b/website/EN/index.html index ea28c162b..6ec59cc09 100644 --- a/website/EN/index.html +++ b/website/EN/index.html @@ -1267,7 +1267,7 @@

You will need python version 3.7 or later.

On a Debian based system:

-

sudo apt install -y tor python3-socks imagemagick python3-setuptools python3-crypto python3-cryptography python3-dateutil python3-idna python3-requests python3-flake8 python3-django-timezone-field python3-pyqrcode python3-png python3-bandit libimage-exiftool-perl certbot nginx wget

+

sudo apt install -y tor python3-socks imagemagick python3-setuptools python3-cryptography python3-dateutil python3-idna python3-requests python3-flake8 python3-django-timezone-field python3-pyqrcode python3-png python3-bandit libimage-exiftool-perl certbot nginx wget