

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.
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.




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?


I’m going to voluntarily read other people’s AI slop.
The IPv6 range is barely even used.
Yet.
Also I imagine that there will be a secondary market for IPv6 at some point.
Like there already is one for IPv4 addresses?
I stand by my point:
No-one will ever need a /48 range.
The ranges will become larger over time because “we have it”, and companies will get thousands of sections with figuratively unlimited IP addresses in them each.
With this huge ranges we’ll have the same problem with IPv6 in a few years that we already have with IPv4.


They not only force their user to buy their crap, they also intentionally and maliciously frame the AGPL in a certain way.
I did not, but of course you can. Either by using an adapter (maybe a printable one?), or – if it is an SSD – by just placing the drive there and hld it in place with one screw.
If there already is a drive installed you want to removed and there is no spare cover, you can also print one.
(You can of course buy the parts instead of printing them. Those adapters and covers are fully standardized and widely available.)
You can create communities only on your own instance. For you that would be this link.
Do you get any error messages?


They do it since quite some time now, right?
AI data centers need RAM. HDDs are used for “the cloud”. 1 terabyte per user need to be stored somewhere.