𝘋𝘪𝘳𝘬

Somewhere between Linux woes, gaming, open source, 3D printing, recreational coding, and occasional ranting.

🔗 Me, but elsewhere

🇬🇧 / 🇩🇪

  • 2 Posts
  • 128 Comments
Joined 3 years ago
cake
Cake day: June 9th, 2023

help-circle
  • 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.

    • can handle .at domains
    • is not Cloudflare
    • is registrar and name server
    • is European (Germany)
    • supports 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.






  • // 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;
        }
    }
    











  • but I’d like to give Nginx Proxy Manager a try, it seems easier to manage stuff not in docker.

    NPM is pretty agnostic. If it receives a request for a specific address and port combination it just forwards the traffic to another specific address and port combination. This can be a docker container, but also can be a physical machine or any random URL.

    It also has Let’s Encrypt included (but that should be a no-brainer).