

Thank you! 2FAuth looks very promising. Especially with the Android app! I need to check out the repo and history when I’m back home, though. It seems to be a one-man show.
Somewhere between Linux woes, gaming, open source, 3D printing, recreational coding, and occasional ranting.
🇬🇧 / 🇩🇪


Thank you! 2FAuth looks very promising. Especially with the Android app! I need to check out the repo and history when I’m back home, though. It seems to be a one-man show.


Aegis seems to be just an app. The thing is, that I see an app as second option for accessing the data. I’d like to have a selfhosted service that is accessible independent from a device and – for convenience – has an app, too.
This a good idea?
This sounds like a fun project that needs some customization, like styling and templating everything to make it look like a blog with federation and comments and not like a Lemmy instance.
Edit: You could also setup GoToSocial for example and set maximum character size to 5000 or so.
This will give you a place to blog and get comments. Readers need a front-end and for them it just looks like a Mastodon account, but you could use styling and template magic to convert the back-end into a nice looking blog front-end.
It’s easy to setup, host, and maintain and runs on fairly low resources.
Lemmy or Piefed? Which is easier to host
Can’t say anything about Piefed, but from what I tried quite some time ago, Lemmy is absurdly annoying to properly set up in an already existing Docker environment with an already existing reverse proxy, because it wants to basically handle everything on it’s own.
It might be actually easier to use another machine or a VM and install Docker there and let Lemmy do whatever it wants to do und just proxy from your main setup to the Lemmy setup.
I gave up.


selfhost.eu offers dynamic DNS which works perfectly fine with my router, using their API access as documented by them. It also works perfectly well with Let’s Encrypt integrated in Nginx Proxy Manager.
They’re in the market since 2001, I use them since ca. 2010 and never had any issues. Their website looks ancient, almost historic. But it’s functional.


Someone else will continue selling RAM and making money.
The URLs mentioned in their blog article all have a wrong certificate (different host name).
I am sure if they fix it Google’s system would reclassify the sites as safe.
I have no problem with mid-tier hardware or even on the lower end. I had a Pixel 3 till it broke, and replaced it with a Pixel 7 Pro. My Laptop is 7, my desktop 10 years old.
But I would not re-buy a Pixel 3 for the price of a Pixel 10 Pro, no matter how open the system is.
(Which is funny, because the Google phones are best for running de-googled Android.)
All free phones I know so far are mid-to-low tier devices with a high-tier price tag. I hope the FSF will be able to either ramp up the specs to current standard (whenever “current” will be) or having a reasonable price.




Thanks! I just prefer simple UIs.


(Screenshots resized due to not wasting too much space.
Here’s a small one of how a website would look like.

Here’s a larger one of how my new tab page looks like (including multiple tabs to show how the tab bar looks like).



// Enable userChrome.css
user_pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
// Warnings
user_pref('browser.aboutConfig.showWarning', false);
// Style
user_pref('browser.tabs.inTitlebar', 0);
user_pref('browser.theme.content-theme', 1);
user_pref('browser.theme.toolbar-theme', 1);
// Extensions
user_pref('extensions.activeThemeID', 'firefox-compact-light@mozilla.org');
user_pref('extensions.pocket.enabled', false);
user_pref('extensions.screenshots.disabled', true);
user_pref('extensions.getAddons.showPane', false);
user_pref('extensions.htmlaboutaddons.recommendations.enabled', false);
// Zoom
user_pref('toolkit.zoomManager.zoomValues', '.5,.3,1,1.2,1.3,1.5');
user_pref('devtools.toolbox.zoomValue', '1.4');
user_pref('browser.zoom.siteSpecific', false);
// Privacy
//
// Basically do not leak URLs, IPs, etc. to external services
user_pref('browser.safebrowsing.malware.enabled', false);
user_pref('browser.safebrowsing.phishing.enabled', false);
user_pref('security.OCSP.enabled', 0);
user_pref('browser.contentblocking.category', 'custom');
user_pref('app.shield.optoutstudies.enabled', false);
user_pref('browser.urlbar.trending.featureGate', false);
// DoH explicitly off
user_pref('network.trr.mode', 5);
user_pref('network.trr.default_provider_uri', '');
// Cookies
user_pref('network.cookie.cookieBehavior', 2);
// AdBlock
user_pref('browser.newtabpage.activity-stream.showSponsoredTopSites', false);
user_pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
user_pref('browser.newtabpage.activity-stream.feeds.topsites', false);
// Remove weird URLS
user_pref('toolkit.shopping.ohttpConfigURL', '');
user_pref('toolkit.shopping.ohttpRelayURL', '');
user_pref('browser.partnerlink.attributionURL', '');
user_pref('browser.privatebrowsing.vpnpromourl', '');
// Do not track
user_pref('privacy.trackingprotection.enabled', false);
user_pref('privacy.trackingprotection.emailtracking.enabled', false);
user_pref('privacy.trackingprotection.socialtracking.enabled', false);
user_pref('privacy.trackingprotection.cryptomining.enabled', false);
user_pref('privacy.trackingprotection.fingerprinting.enabled', false);
user_pref('privacy.donottrackheader.enabled', true);
// Beahvior
user_pref('general.smoothScroll', false);
user_pref('signon.autofillForms', true);
user_pref('signon.firefoxRelay.feature', 'disabled');
user_pref('browser.download.manager.addToRecentDocs', false);
user_pref('security.tls.version.min', 1);
user_pref('browser.profiles.enabled', false);
// UI features
//
// https://github.com/yokoffing/Betterfox/blob/main/user.js
user_pref('browser.discovery.enabled', false);
user_pref('browser.shell.checkDefaultBrowser', false);
user_pref('browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons', false);
user_pref('browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features', false);
user_pref('browser.preferences.moreFromMozilla', false);
user_pref('browser.tabs.tabmanager.enabled', false);
user_pref('browser.aboutConfig.showWarning', false);
user_pref('browser.aboutwelcome.enabled', false);
user_pref('browser.uidensity', 0);
user_pref('browser.urlbar.trimURLs', false);
user_pref('browser.urlbar.showSearchTerms.enabled', false);
// Telemetry
//
// https://github.com/yokoffing/Betterfox/blob/main/user.js
user_pref('datareporting.policy.dataSubmissionEnabled', false);
user_pref('datareporting.healthreport.uploadEnabled', false);
user_pref('toolkit.telemetry.unified', false);
user_pref('toolkit.telemetry.enabled', false);
user_pref('toolkit.telemetry.server', 'data:,');
user_pref('toolkit.telemetry.archive.enabled', false);
user_pref('toolkit.telemetry.newProfilePing.enabled', false);
user_pref('toolkit.telemetry.shutdownPingSender.enabled', false);
user_pref('toolkit.telemetry.updatePing.enabled', false);
user_pref('toolkit.telemetry.bhrPing.enabled', false);
user_pref('toolkit.telemetry.firstShutdownPing.enabled', false);
user_pref('toolkit.telemetry.coverage.opt-out', true);
user_pref('toolkit.coverage.opt-out', true);
user_pref('toolkit.coverage.endpoint.base', '');
user_pref('browser.ping-centre.telemetry', false);
user_pref('browser.newtabpage.activity-stream.feeds.telemetry', false);
user_pref('browser.newtabpage.activity-stream.telemetry', false);
user_pref('breakpad.reportURL', '');
user_pref('browser.tabs.crashReporting.sendReport', false);
user_pref('browser.crashReports.unsubmittedCheck.autoSubmit2', false);
user_pref('app.shield.optoutstudies.enabled', false);
user_pref('app.normandy.enabled', false);
user_pref('app.normandy.api_url', '');
// Disable AI bullshit
//
user_pref('browser.ml.enable', false);
user_pref('browser.ml.chat.enabled', false);
user_pref('browser.ml.chat.shortcuts', false);
user_pref('browser.ml.chat.sidebar', false);
user_pref('pdfjs.enableAltText', false);
user_pref('pdfjs.enableUpdatedAddImage', false);
and
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* Tabs styling */
#TabsToolbar {
background-color: #cccccc !important;
--toolbarbutton-inner-padding: 0 !important;
}
.tabbrowser-tab {
padding: 0 !important;
}
.tab-background {
margin: 0 !important;
border-radius: 0 !important;
background-color: var(--toolbar-bgcolor) !important;
box-shadow: none !important;
}
#alltabs-button {
display: none !important;
}
#tabbrowser-tabs {
min-height: unset !important;
}
/* secondary label indicators */
@font-face {
/* copy font file to same directory as this CSS file */
font-family: 'SymbolsNerdFont';
src: url('SymbolsNerdFont.ttf') format('truetype');
}
.tab-secondary-label {
display: none;
}
.tab-text::before {
font-family: SymbolsNerdFont;
padding-right: 0.25em;
}
.tabbrowser-tab[soundplaying] .tab-text::before { content: ''; }
.tabbrowser-tab[muted] .tab-text::before { content: ''; }
.tabbrowser-tab[activemedia-blocked] .tab-text::before { content: ''; }
/* unselected tabs */
.tab-background:not([selected]),
.tab-icon-image:not([selected]) {
opacity: 0.4 !important;
}
.tab-text:not([selected]) {
color: #555753 !important;
}
#tabbrowser-arrowscrollbox {
min-height: var(--tab-min-height) !important;
max-height: var(--tab-min-height) !important;
}
scrollbox[part="scrollbox"] {
gap: 2px;
}
and
/* Style about:home and about:newtab */
@-moz-document url-prefix(about:home), url-prefix(about:newtab) {
.logo-and-wordmark {
background-image: url(REPLACE_ME_WITH_YOUR_FAVORITE_IMAGE.jpg);
background-size: cover;
background-position: center;
aspect-ratio: 16/9;
border-radius: 1em;
position: relative;
width: auto;
height: auto;
max-width: 80%;
max-height: 60vh;
margin: 0 auto;
}
.logo-and-wordmark .logo {
display: none !important;
}
.logo-and-wordmark .wordmark {
position: absolute;
right: 2em;
bottom: 0.5em;
--newtab-wordmark-color: #eb8819;
}
}


So … Basically just another preconfigured Firefox with extensions?
Remember, open-source has a specific meaning; merely publishing your code in public view does not make it open-source.
This strengthens my point even more.
But why would you publicly host code of closed-source software?
I’d either selfhost a Forgejo instance (which I already do) or use Codeberg (which I also do). The Cloudflare thing for selfhosting is something you need to set up on your own, though.
And another reason to not use GitHub for new projects anymore and working on migrating older projects away from it.


I’m going to voluntarily read other people’s AI slop.
AI data centers need RAM. HDDs are used for “the cloud”. 1 terabyte per user need to be stored somewhere.