{"id":2565,"date":"2025-12-17T09:13:59","date_gmt":"2025-12-17T08:13:59","guid":{"rendered":"https:\/\/yellotab.se\/x056\/?p=2565"},"modified":"2025-12-17T09:45:29","modified_gmt":"2025-12-17T08:45:29","slug":"matrix-federated-kommunikation-network","status":"publish","type":"post","link":"https:\/\/yellotab.se\/x056\/2025\/12\/17\/matrix-federated-kommunikation-network\/","title":{"rendered":"Matrix federated kommunikation network"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">K\u00e4lla: ChatGPT | <a href=\"https:\/\/yellotab.se\/10861\/\">Old<\/a> |<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Att k\u00f6ra en&nbsp;<strong>Matrix-server<\/strong>&nbsp;p\u00e5&nbsp;<strong>TurnKey Linux i Proxmox<\/strong>&nbsp;\u00e4r fullt rimligt \u2013 och ganska elegant om du vill ha kontroll, federation och framtida suver\u00e4n identitet (n\u00e5got som ligger n\u00e4ra dina tidigare resonemang \ud83d\udc40).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nedan \u00e4r en&nbsp;<strong>praktisk och realistisk genomg\u00e5ng<\/strong>, fr\u00e5n grundkrav till fungerande installation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/s3.eu-north-1.amazonaws.com\/yellotab.se\/wp-content\/uploads\/2025\/12\/16174938\/Federated-Matrix-network-scaled.png?ssl=1\"><img data-recalc-dims=\"1\" height=\"578\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/s3.eu-north-1.amazonaws.com\/yellotab.se\/wp-content\/uploads\/2025\/12\/16174938\/Federated-Matrix-network-1024x578.png?resize=1024%2C578&#038;ssl=1\" alt=\"\" class=\"wp-image-10862\"\/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Du kommer i praktiken att k\u00f6ra:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"chatgpt:\/\/generic-entity?number=0\"><strong>Matrix<\/strong><\/a><strong>&nbsp;homeserver<\/strong>&nbsp;(oftast&nbsp;<strong>Synapse<\/strong>)<\/li>\n\n\n\n<li>Databas (PostgreSQL)<\/li>\n\n\n\n<li>Reverse proxy (Nginx)<\/li>\n\n\n\n<li>TLS (Let\u2019s Encrypt)<\/li>\n\n\n\n<li>Allt inkapslat i&nbsp;<a href=\"chatgpt:\/\/generic-entity?number=1\"><strong>Proxmox VE<\/strong><\/a>&nbsp;via TurnKey Linux<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Grundkrav<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>H\u00e5rdvara (minimum)<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"table has-fixed-layout\"><thead><tr><th><strong>Resurs<\/strong><\/th><th><strong>Rekommenderat<\/strong><\/th><\/tr><\/thead><tbody><tr><td>CPU<\/td><td>2 vCPU<\/td><\/tr><tr><td>RAM<\/td><td>2\u20134 GB (4 GB om federation)<\/td><\/tr><tr><td>Disk<\/td><td>20\u201350 GB<\/td><\/tr><tr><td>OS<\/td><td>Debian-baserad TurnKey<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. V\u00e4lj r\u00e4tt TurnKey-image<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Rekommenderade alternativ<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Alternativ A \u2013 TurnKey Core (b\u00e4st kontroll)<\/strong>&nbsp;\u2b50<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Minimal Debian<\/li>\n\n\n\n<li>Du installerar exakt det du beh\u00f6ver<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Alternativ B \u2013 TurnKey Nginx \/ LAMP<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OK om du \u00e4nd\u00e5 k\u00f6r flera tj\u00e4nster<\/li>\n\n\n\n<li>Lite mer \u201cst\u00f6k\u201d i l\u00e4ngden<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49&nbsp;<strong>Rekommendation:<\/strong>&nbsp;TurnKey&nbsp;<strong>Core<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Proxmox-setup<\/strong><\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Skapa ny VM<\/li>\n\n\n\n<li>ISO: TurnKey Linux Core<\/li>\n\n\n\n<li>N\u00e4tverk:\n<ul class=\"wp-block-list\">\n<li>Bridged (vmbr0)<\/li>\n\n\n\n<li>Fast IP eller DHCP + DNS-record<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Portar som m\u00e5ste vara \u00f6ppna:\n<ul class=\"wp-block-list\">\n<li>80&nbsp;(ACME)<\/li>\n\n\n\n<li>443&nbsp;(Matrix client + federation)<\/li>\n\n\n\n<li>8448&nbsp;(Matrix federation, kan proxas via 443)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Proxmox-setup<\/strong><\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Skapa ny VM<\/li>\n\n\n\n<li>ISO: TurnKey Linux Core<\/li>\n\n\n\n<li>N\u00e4tverk:\n<ul class=\"wp-block-list\">\n<li>Bridged (vmbr0)<\/li>\n\n\n\n<li>Fast IP eller DHCP + DNS-record<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Portar som m\u00e5ste vara \u00f6ppna:\n<ul class=\"wp-block-list\">\n<li>80&nbsp;(ACME)<\/li>\n\n\n\n<li>443&nbsp;(Matrix client + federation)<\/li>\n\n\n\n<li>8448&nbsp;(Matrix federation, kan proxas via 443)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Installera beroenden<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">apt update &amp;&amp; apt upgrade\napt install -y \\\n  python3 python3-pip python3-venv \\\n  postgresql \\\n  nginx \\\n  libpq-dev \\\n  build-essential \\\n  git\n6. PostgreSQL\n\nsudo -u postgres createuser synapse\nsudo -u postgres createdb synapse --owner=synapse\n\nS\u00e4tt l\u00f6senord\n\nsudo -u postgres psql\nALTER USER synapse WITH PASSWORD &#039;starkt_l\u00f6sen&#039;;\n\\q\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. Installera Matrix Synapse<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">mkdir -p \/opt\/synapse\ncd \/opt\/synapse\npython3 -m venv venv\nsource venv\/bin\/activate\npip install --upgrade pip\npip install matrix-synapse\n\n&lt;strong&gt;Installera server&lt;\/strong&gt;\n\nsynapse_homeserver \\\n  --server-name matrix.example.org \\\n  --config-path \/etc\/synapse\/homeserver.yaml \\\n  --generate-config \\\n  --report-stats=no<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8. Konfigurera Synapse<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">&lt;strong&gt;\nRedigera&lt;\/strong&gt;\nnano \/etc\/synapse\/homeserver.yaml\n\n&lt;strong&gt;Viktiga delar&lt;\/strong&gt;\nserver_name: &quot;matrix.example.org&quot;\npublic_baseurl: &quot;https:\/\/matrix.example.org\/&quot;\nenable_registration: false\n\ndatabase:\n  name: psycopg2\n  args:\n    user: synapse\n    password: starkt_l\u00f6sen\n    database: synapse\n    host: localhost<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>9. Nginx + TLS<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Nginx-vhost (exempel)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">server {<br>    listen 443 ssl http2;<br>    server_name matrix.example.org;<br><br>    location \/ {<br>        proxy_pass http:\/\/127.0.0.1:8008;<br>        proxy_set_header Host $host;<br>        proxy_set_header X-Forwarded-For $remote_addr;<br>    }<br>}<br><br>Let\u2019s Encrypt<br><br>apt install certbot python3-certbot-nginx<br>certbot &#8211;nginx -d matrix.example.org<br><br><br><br><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. Systemd-service<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">nano \/etc\/systemd\/system\/synapse.service\n\n&lt;strong&gt;&#091;Unit]\n&lt;\/strong&gt;Description=Matrix Synapse\nAfter=network.target postgresql.service\n\n&lt;strong&gt;&#091;Service]\n&lt;\/strong&gt;User=root\nWorkingDirectory=\/opt\/synapse\nExecStart=\/opt\/synapse\/venv\/bin\/python -m synapse.app.homeserver \\\n  --config-path \/etc\/synapse\/homeserver.yaml\nRestart=always\n\n&lt;strong&gt;&#091;Install]\n&lt;\/strong&gt;WantedBy=multi-user.target\nsystemctl daemon-reload\nsystemctl enable synapse\nsystemctl start synapse<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>11. Skapa f\u00f6rsta admin-kontot<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">register_new_matrix_user \\<br>-c \/etc\/synapse\/homeserver.yaml \\<br>http:\/\/localhost:8008<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Klienter<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Element Web<\/li>\n\n\n\n<li>Element Desktop<\/li>\n\n\n\n<li>FluffyChat<\/li>\n\n\n\n<li>Cinny<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Server-URL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">https:&#047;&#047;matrix.example.org<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vanliga fallgropar<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"table has-fixed-layout\"><thead><tr><th><strong>Problem<\/strong><\/th><th><strong>Orsak<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Federation funkar ej<\/td><td>Saknar SRV-record<\/td><\/tr><tr><td>Inloggning loopar<\/td><td>public_baseurl&nbsp;fel<\/td><\/tr><tr><td>H\u00f6g CPU<\/td><td>SQLite anv\u00e4nds<\/td><\/tr><tr><td>Media fyller disk<\/td><td>Ingen retention policy<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Vill du ta det vidare?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Utifr\u00e5n dina tidigare id\u00e9er kan n\u00e4sta steg vara:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udd10&nbsp;<strong>Matrix + DID \/ Freja \/ mTLS<\/strong><\/li>\n\n\n\n<li>\ud83c\udf0d&nbsp;<strong>Federerad community-nod<\/strong><\/li>\n\n\n\n<li>\ud83c\udfdb\ufe0f&nbsp;<strong>Commons-baserad kommunikation<\/strong><\/li>\n\n\n\n<li>\ud83d\udd01&nbsp;<strong>Bridge till e-post \/ IRC \/ Signal<\/strong><\/li>\n\n\n\n<li>\ud83e\uddf1&nbsp;<strong>Docker-variant i Proxmox<\/strong><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Att k\u00f6ra en\u00a0Matrix-server\u00a0p\u00e5\u00a0TurnKey Linux i Proxmox\u00a0\u00e4r fullt rimligt \u2013 och ganska elegant om du vill ha kontroll, federation och framtida suver\u00e4n identitet (n\u00e5got som ligger n\u00e4ra dina tidigare resonemang<\/p>\n","protected":false},"author":3,"featured_media":2572,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-2565","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/s3.eu-north-1.amazonaws.com\/yellotab.se\/wp-content\/uploads\/sites\/45\/2025\/12\/17094206\/Federated-Matrix-network-scaled.png?fit=2560%2C1445&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/posts\/2565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/comments?post=2565"}],"version-history":[{"count":6,"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/posts\/2565\/revisions"}],"predecessor-version":[{"id":2575,"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/posts\/2565\/revisions\/2575"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/media\/2572"}],"wp:attachment":[{"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/media?parent=2565"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/categories?post=2565"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yellotab.se\/x056\/wp-json\/wp\/v2\/tags?post=2565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}