{"id":3200,"date":"2026-07-09T23:55:03","date_gmt":"2026-07-09T20:55:03","guid":{"rendered":"https:\/\/lassinsivut.eu\/?p=3200"},"modified":"2026-07-10T00:39:04","modified_gmt":"2026-07-09T21:39:04","slug":"nextcloud-asennus","status":"publish","type":"post","link":"https:\/\/lassinsivut.eu\/en\/nextcloud-asennus\/","title":{"rendered":"Nextcloud &#038; Talk palvelimen turvallinen asennus"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3200\" class=\"elementor elementor-3200\">\n\t\t\t\t<div class=\"aux-parallax-section elementor-element elementor-element-c56e235 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"c56e235\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ac4c57 elementor-widget elementor-widget-spacer\" data-id=\"1ac4c57\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca70c46 elementor-widget elementor-widget-heading\" data-id=\"ca70c46\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Nextcloud &amp; Talk asennus tietoturvallisesti<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-6acc99f e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"6acc99f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0c32032 elementor-widget elementor-widget-text-editor\" data-id=\"0c32032\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-path-to-node=\"3\">T\u00e4m\u00e4 opas on suunnattu jotka haluavat rakentaa yritystason Nextcloud-ymp\u00e4rist\u00f6n puhtaalle Debian 13 -palvelimelle t\u00e4ysin ilman Dockeria.<\/p><p data-path-to-node=\"4\">T\u00e4ss\u00e4 arkkitehtuurissa hy\u00f6dynn\u00e4mme natiiveja bin\u00e4\u00e4rej\u00e4, edistynytt\u00e4 PHP 8.3 -resurssienhallintaa, Redis-v\u00e4limuistia ja NATS-viestinv\u00e4lityst\u00e4. Lopputuloksena on j\u00e4rjestelm\u00e4, joka kest\u00e4\u00e4 raskasta mediasiirtoa ja kymmenien k\u00e4ytt\u00e4jien samanaikaisia videopuheluita maksimaalisella tietoturvalla.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8c51c06 elementor-widget elementor-widget-heading\" data-id=\"8c51c06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vaihe 1: Palvelimen Tietoturvan Perusta<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5bd85c7 elementor-widget elementor-widget-text-editor\" data-id=\"5bd85c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-path-to-node=\"7\">Ennen ohjelmistojen asennusta k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 on suojattava ulkopuolisilta uhkilta. Suljemme tarpeettomat portit ja asennamme j\u00e4rjestelm\u00e4n, joka est\u00e4\u00e4 automaattisesti toistuvat murtoyritykset.<\/p><p data-path-to-node=\"8\"><b data-path-to-node=\"8\" data-index-in-node=\"0\">1. Palomuurin (UFW) k\u00e4ytt\u00f6\u00f6notto:<\/b> Sallimme vain v\u00e4ltt\u00e4m\u00e4tt\u00f6m\u00e4n verkkoliikenteen ja SSH-hallinnan. mik\u00e4li t\u00e4m\u00e4n haluaa.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bd74017 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"bd74017\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-bd74017\" id=\"eael-code-snippet-bd74017\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>sudo apt update &amp;&amp; sudo apt install -y ufw\r\nsudo ufw default deny incoming\r\nsudo ufw default allow outgoing\r\nsudo ufw allow 22\/tcp  # SSH\r\nsudo ufw allow 80\/tcp  # HTTP\r\nsudo ufw allow 443\/tcp # HTTPS\r\nsudo ufw enable<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-4d0ea10 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"4d0ea10\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0b47d50 elementor-widget elementor-widget-heading\" data-id=\"0b47d50\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">2. Kirjautumisyritysten est\u00e4minen (Fail2Ban)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-485d788 elementor-widget elementor-widget-text-editor\" data-id=\"485d788\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Fail2Ban tarkkailee Nextcloudin lokeja ja est\u00e4\u00e4 hy\u00f6kk\u00e4\u00e4jien IP-osoitteet.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9645969 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"9645969\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-9645969\" id=\"eael-code-snippet-9645969\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>sudo apt install -y fail2ban\r\nsudo nano \/etc\/fail2ban\/jail.local<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f108d76 elementor-widget elementor-widget-text-editor\" data-id=\"f108d76\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Lis\u00e4\u00e4 tiedostoon seuraava:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8bea42a elementor-widget elementor-widget-eael-code-snippet\" data-id=\"8bea42a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-8bea42a\" id=\"eael-code-snippet-8bea42a\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>[nextcloud]\r\nbackend = auto\r\nenabled = true\r\nport = 80,443\r\nprotocol = tcp\r\nfilter = nextcloud\r\nmaxretry = 3\r\nbantime = 86400\r\nfindtime = 43200\r\nlogpath = \/mnt\/ncdata\/nextcloud.log<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19a3ffd elementor-widget elementor-widget-text-editor\" data-id=\"19a3ffd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>K\u00e4ynnist\u00e4 palvelu uudelleen: <strong>sudo systemctl restart fail2ban<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-7b41093 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"7b41093\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca00679 elementor-widget elementor-widget-heading\" data-id=\"ca00679\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vaihe 2: Ymp\u00e4rist\u00f6n Asennus<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ec5a860 elementor-widget elementor-widget-text-editor\" data-id=\"ec5a860\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Asennamme palvelimelle seuraavat: PHP 8.3:n, Nginx-verkkopalvelimen, MariaDB-tietokannan ja Redis-v\u00e4limuistin. Muista aina valita uusin PHP-versio!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05eef25 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"05eef25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-05eef25\" id=\"eael-code-snippet-05eef25\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code># Perusty\u00f6kalut\r\nsudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https unzip default-mysql-server nginx redis-server\r\n\r\n# Lis\u00e4\u00e4 Ond\u0159ej Sur\u00fdn virallinen PHP-l\u00e4hde\r\nsudo wget -O \/etc\/apt\/trusted.gpg.d\/php.gpg https:\/\/packages.sury.org\/php\/apt.gpg\r\necho &quot;deb https:\/\/packages.sury.org\/php\/ $(lsb_release -sc) main&quot; | sudo tee \/etc\/apt\/sources.list.d\/php.list\r\nsudo apt update\r\n\r\n# Asenna PHP 8.3 ja vaaditut moduulit\r\nsudo apt install -y php8.3-fpm php8.3-cli php8.3-common php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-redis php8.3-apcu php8.3-imagick\r\n#Version tarkistus\r\nsudo php -v<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-1482f3d e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"1482f3d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-81e48c8 elementor-widget elementor-widget-heading\" data-id=\"81e48c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vaihe 3: Suorituskyvyn Optimointi<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6bbab7c elementor-widget elementor-widget-text-editor\" data-id=\"6bbab7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Perusasetuksilla PHP ja tietokanta tukehtuvat suuren kuorman alla. Skaalaamme resurssit vastaamaan nykyaikaisen laitteiston tehoa. T\u00e4m\u00e4 riippuu suuresti mink\u00e4lainen kokoonpano sinulla on!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b7e6124 elementor-widget elementor-widget-heading\" data-id=\"b7e6124\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">1. PHP 8.3 JIT &amp; OPcache:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-99c614c elementor-widget elementor-widget-text-editor\" data-id=\"99c614c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avaa <strong>\/etc\/php\/8.3\/fpm\/php.ini<\/strong>\u00a0ja virit\u00e4 muistirajat isojen tiedostojen siirtoa varten:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-87109ac elementor-widget elementor-widget-eael-code-snippet\" data-id=\"87109ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-87109ac\" id=\"eael-code-snippet-87109ac\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>memory_limit = 1024M\r\nupload_max_filesize = 16G\r\npost_max_size = 16G\r\nmax_execution_time = 3600\r\n\r\n[opcache]\r\nopcache.enable = 1\r\nopcache.memory_consumption = 256\r\nopcache.interned_strings_buffer = 32\r\nopcache.max_accelerated_files = 10000\r\nopcache.jit = tracing\r\nopcache.jit_buffer_size = 128M<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-72300dc elementor-widget elementor-widget-heading\" data-id=\"72300dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">2. PHP-FPM -s\u00e4ikeiden skaalaus:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a165fea elementor-widget elementor-widget-text-editor\" data-id=\"a165fea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>S\u00e4\u00e4d\u00e4 ty\u00f6ntekij\u00e4prosessit tiedostosta <strong>\/etc\/php\/8.3\/fpm\/pool.d\/www.conf<\/strong>:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c7dcba elementor-widget elementor-widget-eael-code-snippet\" data-id=\"1c7dcba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-1c7dcba\" id=\"eael-code-snippet-1c7dcba\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>pm = dynamic\r\npm.max_children = 120\r\npm.start_servers = 12\r\npm.min_spare_servers = 6\r\npm.max_spare_servers = 18<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-598cfe1 elementor-widget elementor-widget-text-editor\" data-id=\"598cfe1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>K\u00e4ynnist\u00e4 uudelleen: <strong>sudo systemctl restart php8.3-fpm<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-377c22b e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"377c22b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a9a196d elementor-widget elementor-widget-heading\" data-id=\"a9a196d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">3. Tietokannan (MariaDB) puskuri:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-02db1c4 elementor-widget elementor-widget-text-editor\" data-id=\"02db1c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Pakota tietokanta pit\u00e4m\u00e4\u00e4n tiedot RAM-muistissa levyhakujen sijaan muokkaamalla <strong>\/etc\/mysql\/mariadb.conf.d\/50-server.cnf<\/strong>:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d48f7d2 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"d48f7d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-d48f7d2\" id=\"eael-code-snippet-d48f7d2\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>[mysqld]\r\ninnodb_buffer_pool_size = 4G  # Suositus: n. 60% vapaasta RAM-muistista\r\ninnodb_io_capacity = 2000\r\ninnodb_io_capacity_max = 4000<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d384d18 elementor-widget elementor-widget-text-editor\" data-id=\"d384d18\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>K\u00e4ynnist\u00e4 uudelleen:\u00a0<strong>sudo systemctl restart mariadb<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-e403f26 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"e403f26\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-79973c4 elementor-widget elementor-widget-heading\" data-id=\"79973c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vaihe 4: Nginx ja Tietoturvaotsakkeet<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-665cb99 elementor-widget elementor-widget-text-editor\" data-id=\"665cb99\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-path-to-node=\"32\">Nginx konfiguroidaan turvalliseksi taustapalvelimeksi (sopii erinomaisesti k\u00e4ytett\u00e4v\u00e4ksi k\u00e4\u00e4nteisen v\u00e4lityspalvelimen takana &#8221;<strong>Reverse Proxy<\/strong>&#8221;). Suosittelen t\u00e4t\u00e4 suuresti jotta tietoturva on entist\u00e4 isompi. Sivultani l\u00f6ytyy helppo ohje t\u00e4m\u00e4n toteuttamiseen! T\u00e4m\u00e4n takia ohjeessani ei k\u00e4ytet\u00e4 porttia <strong>443<\/strong> sek\u00e4 SSL-Suojausta. Voit kuitenkin vapaasti valita haluamasi portin kunhan se ei ole jo varattuna.<\/p><p data-path-to-node=\"33\">Luo tiedosto\u00a0<strong>\/etc\/nginx\/sites-available\/nextcloud<\/strong>:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34c53ba elementor-widget elementor-widget-eael-code-snippet\" data-id=\"34c53ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-34c53ba\" id=\"eael-code-snippet-34c53ba\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>server {\r\n    listen 80;\r\n    server_name pilvi.esimerkki.fi;\r\n    root \/var\/www\/nextcloud;\r\n    index index.php index.html \/index.php$request_uri;\r\n\r\n    client_max_body_size 16G;\r\n    client_body_timeout 300s;\r\n    fastcgi_buffers 64 4K;\r\n\r\n    # HTTP-tietoturvaotsakkeet\r\n    add_header Strict-Transport-Security &quot;max-age=15552000; includeSubDomains&quot; always;\r\n    add_header X-Content-Type-Options &quot;nosniff&quot; always;\r\n    add_header X-XSS-Protection &quot;1; mode=block&quot; always;\r\n    add_header X-Robots-Tag &quot;none&quot; always;\r\n    add_header X-Download-Options &quot;noopen&quot; always;\r\n    add_header X-Permitted-Cross-Domain-Policies &quot;none&quot; always;\r\n    add_header Referrer-Policy &quot;no-referrer&quot; always;\r\n\r\n    location \/ {\r\n        rewrite ^ \/index.php;\r\n    }\r\n\r\n    location ~ ^\\\/(?:build|tests|config|lib|3rdparty|templates|data)\\\/ {\r\n        deny all;\r\n    }\r\n\r\n    location ~ ^\\\/((?:index|remote|public|cron|core\\\/ajax\\\/update|status|ocs\\\/v[12]|updater\\\/.+|oc[ms]-provider\\\/.+)\\.php(?:$|\\\/)) {\r\n        fastcgi_split_path_info ^(.+?\\.php)(\\\/.*|)$;\r\n        set $path_info $fastcgi_path_info;\r\n        try_files $fastcgi_script_name =404;\r\n        include fastcgi_params;\r\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\r\n        fastcgi_param PATH_INFO $path_info;\r\n        fastcgi_pass unix:\/run\/php\/php8.3-fpm.sock;\r\n    }\r\n\r\n    location ~ \\.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ {\r\n        try_files $uri \/index.php$request_uri;\r\n        add_header Cache-Control &quot;public, max-age=15778463&quot;;\r\n        access_log off;\r\n    }\r\n}<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa2911c elementor-widget elementor-widget-text-editor\" data-id=\"aa2911c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span class=\"citation-57 citation-end-57\">O<\/span>ta k\u00e4ytt\u00f6\u00f6n: <strong>sudo ln -s \/etc\/nginx\/sites-available\/nextcloud \/etc\/nginx\/sites-enabled\/ &amp;&amp; sudo systemctl restart nginx<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-2429f4d e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"2429f4d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d2d0c61 elementor-widget elementor-widget-heading\" data-id=\"d2d0c61\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vaihe 5: Nextcloudin Ydin ja Tiedostolukitus<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1b3e1c9 elementor-widget elementor-widget-text-editor\" data-id=\"1b3e1c9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Rediksen k\u00e4ytt\u00f6 tiedostojen lukituksessa (File Locking) on kriittist\u00e4, jotta j\u00e4rjestelm\u00e4 ei korruptoidu, kun useat k\u00e4ytt\u00e4j\u00e4t siirt\u00e4v\u00e4t tiedostoja samanaikaisesti.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aed66b5 elementor-widget elementor-widget-heading\" data-id=\"aed66b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">1. Lataa ja asenna Nextcloud:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51a56d4 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"51a56d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-51a56d4\" id=\"eael-code-snippet-51a56d4\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>cd \/var\/www\/\r\nsudo wget https:\/\/download.nextcloud.com\/server\/releases\/latest.zip\r\nsudo unzip latest.zip\r\nsudo chown -R www-data:www-data \/var\/www\/nextcloud<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef1952f elementor-widget elementor-widget-heading\" data-id=\"ef1952f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">2. Pakota ydinasetukset v\u00e4limuistille:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a78424 elementor-widget elementor-widget-text-editor\" data-id=\"8a78424\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Avaa nyt selaimesi ja avaa palvelimen IP-Osoite. Kun olet suorittanut selaimen asennusn\u00e4kym\u00e4n, muokkaa tiedostoa <strong>\/var\/www\/nextcloud\/config\/config.php<\/strong>:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4087fe elementor-widget elementor-widget-eael-code-snippet\" data-id=\"c4087fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-c4087fe\" id=\"eael-code-snippet-c4087fe\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>\/\/ K\u00e4\u00e4nteisen v\u00e4lityspalvelimen (Reverse Proxy) reititys\r\n  &#039;trusted_proxies&#039; =&gt; [&#039;&lt;V\u00c4LITYSPALVELIMEN_IP&gt;&#039;], \r\n  &#039;overwriteprotocol&#039; =&gt; &#039;https&#039;,\r\n  \r\n  \/\/ APCu ja Redis -v\u00e4limuisti\r\n  &#039;memcache.local&#039; =&gt; &#039;\\\\OC\\\\Memcache\\\\APCu&#039;,\r\n  &#039;memcache.distributed&#039; =&gt; &#039;\\\\OC\\\\Memcache\\\\Redis&#039;,\r\n  &#039;memcache.locking&#039; =&gt; &#039;\\\\OC\\\\Memcache\\\\Redis&#039;,\r\n  &#039;redis&#039; =&gt; [\r\n    &#039;host&#039; =&gt; &#039;localhost&#039;,\r\n    &#039;port&#039; =&gt; 6379,\r\n  ],\r\n  \r\n  \/\/ Lokituksen ja roskakorin hallinta\r\n  &#039;loglevel&#039; =&gt; 2,\r\n  &#039;trashbin_retention_obligation&#039; =&gt; &#039;auto, 30&#039;,\r\n  &#039;versions_retention_obligation&#039; =&gt; &#039;auto, 30&#039;,<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5acc1be elementor-widget elementor-widget-heading\" data-id=\"5acc1be\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">3. Ota k\u00e4ytt\u00f6\u00f6n System Cron:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-64bb60f elementor-widget elementor-widget-text-editor\" data-id=\"64bb60f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>V\u00e4henn\u00e4 selaimen latausaikoja siirt\u00e4m\u00e4ll\u00e4 taustaty\u00f6t k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n vastuulle.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43eb763 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"43eb763\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-43eb763\" id=\"eael-code-snippet-43eb763\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>sudo crontab -u www-data -e\r\n# Lis\u00e4\u00e4 rivi: *\/5 * * * * php -f \/var\/www\/nextcloud\/cron.php<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-d8c7d76 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"d8c7d76\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-65ccf5a elementor-widget elementor-widget-heading\" data-id=\"65ccf5a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vaihe 6: Nextcloud Talk HPB (High-Performance Backend)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4993e1 elementor-widget elementor-widget-text-editor\" data-id=\"b4993e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Talk-sovellus vaatii tehokkaan signaalipalvelimen yli nelj\u00e4n hengen kokouksia varten. Asennamme NATS- ja Spreed-bin\u00e4\u00e4rit natiivisti. <strong>HUOM:<\/strong> K\u00e4y kuitenkin tarkistamassa uusimmat versiot ja lataa ne: <strong>https:\/\/github.com\/nats-io\/nats-server\/releases\u00a0<\/strong>ja\u00a0<strong>https:\/\/github.com\/strukturag\/nextcloud-spreed-signaling\/releases<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cc50cd0 elementor-widget elementor-widget-heading\" data-id=\"cc50cd0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">1. NATS-palvelimen asennus:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3367923 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"3367923\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-3367923\" id=\"eael-code-snippet-3367923\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>wget https:\/\/github.com\/nats-io\/nats-server\/releases\/download\/v2.10.16\/nats-server-v2.10.16-linux-amd64.tar.gz\r\ntar -xzf nats-server-*.tar.gz\r\nsudo mv nats-server-*\/nats-server \/usr\/local\/bin\/<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a53723b elementor-widget elementor-widget-heading\" data-id=\"a53723b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">2. Spreed-signaalipalvelimen asennus:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a73cbab elementor-widget elementor-widget-eael-code-snippet\" data-id=\"a73cbab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-a73cbab\" id=\"eael-code-snippet-a73cbab\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>wget https:\/\/github.com\/strukturag\/nextcloud-spreed-signaling\/releases\/download\/v1.2.3\/signaling-linux-amd64\r\nsudo mv signaling-linux-amd64 \/usr\/local\/bin\/signaling\r\nsudo chmod +x \/usr\/local\/bin\/signaling\r\nsudo mkdir \/etc\/signaling<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a83490 elementor-widget elementor-widget-heading\" data-id=\"9a83490\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">3. HPB-konfiguraatio<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bb4f0dc elementor-widget elementor-widget-text-editor\" data-id=\"bb4f0dc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>(<strong>\/etc\/signaling\/server.conf<\/strong>):<\/p><p>Luo kaksi satunnaista avainta (<strong>openssl rand -hex 16<\/strong>) ja sijoita ne hash- ja blockkey-kohtiin.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-35c1a57 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"35c1a57\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-35c1a57\" id=\"eael-code-snippet-35c1a57\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>[server]\r\nlisten = 127.0.0.1:8080\r\n\r\n[sessions]\r\nhashkey = &lt;GENEROITU_AVAIN_1&gt;\r\nblockkey = &lt;GENEROITU_AVAIN_2&gt;\r\n\r\n[backend]\r\nbackends = nextcloud\r\nallowall = false\r\ntimeout = 10\r\nconnectionsperhost = 8\r\n\r\n[nextcloud]\r\nbackend = https:\/\/pilvi.esimerkki.fi\r\nsecret = &lt;LUOTU_SALASANA_PALVELIMELLE&gt;\r\n\r\n[nats]\r\nurl = nats:\/\/localhost:4222<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d30ba06 elementor-widget elementor-widget-text-editor\" data-id=\"d30ba06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>T\u00e4m\u00e4n j\u00e4lkeen luodaan Systemd-palvelut molemmille ja yhdistet\u00e4\u00e4n HPB Nextcloudin Talk-asetuksista <strong>secret <\/strong>avainta k\u00e4ytt\u00e4en.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"aux-parallax-section elementor-element elementor-element-73029cb e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"73029cb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7c284bf elementor-widget elementor-widget-heading\" data-id=\"7c284bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vaihe 7: Viimeistely (2FA ja Tietokannan Eheys)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-251dbe4 elementor-widget elementor-widget-text-editor\" data-id=\"251dbe4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Lopuksi viimeistelemme j\u00e4rjestelm\u00e4n tietoturvan komentorivin kautta ja varmistamme tietokannan rakenteen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e7a5c8 elementor-widget elementor-widget-heading\" data-id=\"2e7a5c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Pakota kaksivaiheinen tunnistautuminen (TOTP) kaikille:<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-09c0003 elementor-widget elementor-widget-eael-code-snippet\" data-id=\"09c0003\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-09c0003\" id=\"eael-code-snippet-09c0003\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>sudo -u www-data php \/var\/www\/nextcloud\/occ app:enable twofactor_totp\r\nsudo -u www-data php \/var\/www\/nextcloud\/occ twofactorauth:enforce --on<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-92ed8b6 elementor-widget elementor-widget-text-editor\" data-id=\"92ed8b6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Luo puuttuvat tietokantaindeksit asennuksen j\u00e4ljilt\u00e4:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea737ef elementor-widget elementor-widget-eael-code-snippet\" data-id=\"ea737ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-code-snippet.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t      <div class=\"eael-code-snippet-wrapper theme-dark view-mode-default\" data-language=\"bash\" data-copy-button=\"1\" data-snippet-id=\"eael-code-snippet-ea737ef\" id=\"eael-code-snippet-ea737ef\" >\n      \n         <div class=\"eael-code-snippet-content\">\n                        <pre class=\"eael-code-snippet-code language-bash\"><code>sudo -u www-data php \/var\/www\/nextcloud\/occ db:add-missing-indices<\/code><\/pre>\n                     <\/div>\n      <\/div>\n      \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-493beb6 elementor-widget elementor-widget-text-editor\" data-id=\"493beb6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-path-to-node=\"64\">Olet nyt onnistuneesti rakentanut palvelimen, joka hy\u00f6dynt\u00e4\u00e4 laitteistosi resursseja suoraan ja tehokkaasti.<\/p><p data-path-to-node=\"65\">Oikein konfiguroitu v\u00e4limuistien ketju (<strong>APCu<\/strong> -&gt; <strong>Redis<\/strong> -&gt; <strong>MariaDB<\/strong> <strong>RAM<\/strong> <strong>Puskuri<\/strong> -&gt; <strong>JIT<\/strong>) varmistaa, ett\u00e4 j\u00e4rjestelm\u00e4 pysyy salamannopeana my\u00f6s silloin, kun tallennustilaan lis\u00e4t\u00e4\u00e4n satoja gigatavuja dataa tai kun verkossa on kymmeni\u00e4 samanaikaisia k\u00e4ytt\u00e4ji\u00e4. Palomuurit ja Fail2Ban-s\u00e4\u00e4nn\u00f6t takaavat, ett\u00e4 yritystason datasi pysyy turvassa verkkoon avattuna. Lis\u00e4turvallisuutta saat my\u00f6s k\u00e4ytt\u00e4m\u00e4ll\u00e4 v\u00e4lityspalvelinta Internetin ja palvelimesi v\u00e4lill\u00e4.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Nextcloud &amp; Talk asennus tietoturvallisesti T\u00e4m\u00e4 opas on suunnattu jotka haluavat rakentaa yritystason Nextcloud-ymp\u00e4rist\u00f6n puhtaalle Debian 13 -palvelimelle t\u00e4ysin ilman Dockeria. T\u00e4ss\u00e4 arkkitehtuurissa hy\u00f6dynn\u00e4mme natiiveja bin\u00e4\u00e4rej\u00e4, edistynytt\u00e4 PHP 8.3 -resurssienhallintaa, Redis-v\u00e4limuistia ja NATS-viestinv\u00e4lityst\u00e4. Lopputuloksena on j\u00e4rjestelm\u00e4, joka kest\u00e4\u00e4 raskasta mediasiirtoa ja kymmenien k\u00e4ytt\u00e4jien samanaikaisia videopuheluita maksimaalisella tietoturvalla. Vaihe 1: Palvelimen Tietoturvan Perusta Ennen ohjelmistojen asennusta k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 on suojattava ulkopuolisilta uhkilta. Suljemme tarpeettomat portit ja asennamme j\u00e4rjestelm\u00e4n, joka est\u00e4\u00e4 automaattisesti toistuvat murtoyritykset. 1. Palomuurin (UFW) k\u00e4ytt\u00f6\u00f6notto: Sallimme vain v\u00e4ltt\u00e4m\u00e4tt\u00f6m\u00e4n verkkoliikenteen ja SSH-hallinnan. mik\u00e4li t\u00e4m\u00e4n haluaa. sudo apt update &amp;&amp; sudo apt install -y ufw sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 22\/tcp # SSH sudo ufw allow 80\/tcp # HTTP sudo ufw allow 443\/tcp # HTTPS sudo ufw enable 2. Kirjautumisyritysten est\u00e4minen (Fail2Ban) Fail2Ban tarkkailee Nextcloudin lokeja ja est\u00e4\u00e4 hy\u00f6kk\u00e4\u00e4jien IP-osoitteet. sudo apt install -y fail2ban sudo nano \/etc\/fail2ban\/jail.local Lis\u00e4\u00e4 tiedostoon seuraava: [nextcloud] backend = auto enabled = true port = 80,443 protocol = tcp filter = nextcloud maxretry = 3 bantime = 86400 findtime = 43200 logpath = \/mnt\/ncdata\/nextcloud.log K\u00e4ynnist\u00e4 palvelu uudelleen: sudo systemctl restart fail2ban Vaihe 2: Ymp\u00e4rist\u00f6n Asennus Asennamme palvelimelle seuraavat: PHP 8.3:n, Nginx-verkkopalvelimen, MariaDB-tietokannan ja Redis-v\u00e4limuistin. Muista aina valita uusin PHP-versio! # Perusty\u00f6kalut sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https unzip default-mysql-server nginx redis-server # Lis\u00e4\u00e4 Ond\u0159ej Sur\u00fdn virallinen PHP-l\u00e4hde sudo wget -O \/etc\/apt\/trusted.gpg.d\/php.gpg https:\/\/packages.sury.org\/php\/apt.gpg echo &quot;deb https:\/\/packages.sury.org\/php\/ $(lsb_release -sc) main&quot; | sudo tee \/etc\/apt\/sources.list.d\/php.list sudo apt update # Asenna PHP 8.3 ja vaaditut moduulit sudo apt install -y php8.3-fpm php8.3-cli php8.3-common php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-redis php8.3-apcu php8.3-imagick #Version tarkistus sudo php -v Vaihe 3: Suorituskyvyn Optimointi Perusasetuksilla PHP ja tietokanta tukehtuvat suuren kuorman alla. Skaalaamme resurssit vastaamaan nykyaikaisen laitteiston tehoa. T\u00e4m\u00e4 riippuu suuresti mink\u00e4lainen kokoonpano sinulla on! 1. PHP 8.3 JIT &amp; OPcache: Avaa \/etc\/php\/8.3\/fpm\/php.ini\u00a0ja virit\u00e4 muistirajat isojen tiedostojen siirtoa varten: memory_limit = 1024M upload_max_filesize = 16G post_max_size = 16G max_execution_time = 3600 [opcache] opcache.enable = 1 opcache.memory_consumption = 256 opcache.interned_strings_buffer = 32 opcache.max_accelerated_files = 10000 opcache.jit = tracing opcache.jit_buffer_size = 128M 2. PHP-FPM -s\u00e4ikeiden skaalaus: S\u00e4\u00e4d\u00e4 ty\u00f6ntekij\u00e4prosessit tiedostosta \/etc\/php\/8.3\/fpm\/pool.d\/www.conf: pm = dynamic pm.max_children = 120 pm.start_servers = 12 pm.min_spare_servers = 6 pm.max_spare_servers = 18 K\u00e4ynnist\u00e4 uudelleen: sudo systemctl restart php8.3-fpm 3. Tietokannan (MariaDB) puskuri: Pakota tietokanta pit\u00e4m\u00e4\u00e4n tiedot RAM-muistissa levyhakujen sijaan muokkaamalla \/etc\/mysql\/mariadb.conf.d\/50-server.cnf: [mysqld] innodb_buffer_pool_size = 4G # Suositus: n. 60% vapaasta RAM-muistista innodb_io_capacity = 2000 innodb_io_capacity_max = 4000 K\u00e4ynnist\u00e4 uudelleen:\u00a0sudo systemctl restart mariadb Vaihe 4: Nginx ja Tietoturvaotsakkeet Nginx konfiguroidaan turvalliseksi taustapalvelimeksi (sopii erinomaisesti k\u00e4ytett\u00e4v\u00e4ksi k\u00e4\u00e4nteisen v\u00e4lityspalvelimen takana &#8221;Reverse Proxy&#8221;). Suosittelen t\u00e4t\u00e4 suuresti jotta tietoturva on entist\u00e4 isompi. Sivultani l\u00f6ytyy helppo ohje t\u00e4m\u00e4n toteuttamiseen! T\u00e4m\u00e4n takia ohjeessani ei k\u00e4ytet\u00e4 porttia 443 sek\u00e4 SSL-Suojausta. Voit kuitenkin vapaasti valita haluamasi portin kunhan se ei ole jo varattuna. Luo tiedosto\u00a0\/etc\/nginx\/sites-available\/nextcloud: server { listen 80; server_name pilvi.esimerkki.fi; root \/var\/www\/nextcloud; index index.php index.html \/index.php$request_uri; client_max_body_size 16G; client_body_timeout 300s; fastcgi_buffers 64 4K; # HTTP-tietoturvaotsakkeet add_header Strict-Transport-Security &quot;max-age=15552000; includeSubDomains&quot; always; add_header X-Content-Type-Options &quot;nosniff&quot; always; add_header X-XSS-Protection &quot;1; mode=block&quot; always; add_header X-Robots-Tag &quot;none&quot; always; add_header X-Download-Options &quot;noopen&quot; always; add_header X-Permitted-Cross-Domain-Policies &quot;none&quot; always; add_header Referrer-Policy &quot;no-referrer&quot; always; location \/ { rewrite ^ \/index.php; } location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ { deny all; } location ~ ^\/((?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+).php(?:$|\/)) { fastcgi_split_path_info ^(.+?.php)(\/.*|)$; set $path_info $fastcgi_path_info; try_files $fastcgi_script_name =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_pass unix:\/run\/php\/php8.3-fpm.sock; } location ~ .(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ { try_files $uri \/index.php$request_uri; add_header Cache-Control &quot;public, max-age=15778463&quot;; access_log off; } } Ota k\u00e4ytt\u00f6\u00f6n: sudo ln -s \/etc\/nginx\/sites-available\/nextcloud \/etc\/nginx\/sites-enabled\/ &amp;&amp; sudo systemctl restart nginx Vaihe 5: Nextcloudin Ydin ja Tiedostolukitus Rediksen k\u00e4ytt\u00f6 tiedostojen lukituksessa (File Locking) on kriittist\u00e4, jotta j\u00e4rjestelm\u00e4 ei korruptoidu, kun useat k\u00e4ytt\u00e4j\u00e4t siirt\u00e4v\u00e4t tiedostoja samanaikaisesti. 1. Lataa ja asenna Nextcloud: cd \/var\/www\/ sudo wget https:\/\/download.nextcloud.com\/server\/releases\/latest.zip sudo unzip latest.zip sudo chown -R www-data:www-data \/var\/www\/nextcloud 2. Pakota ydinasetukset v\u00e4limuistille: Avaa nyt selaimesi ja avaa palvelimen IP-Osoite. Kun olet suorittanut selaimen asennusn\u00e4kym\u00e4n, muokkaa tiedostoa \/var\/www\/nextcloud\/config\/config.php: \/\/ K\u00e4\u00e4nteisen v\u00e4lityspalvelimen (Reverse Proxy) reititys &#039;trusted_proxies&#039; =&gt; [&#039;&lt;V\u00c4LITYSPALVELIMEN_IP&gt;&#039;], &#039;overwriteprotocol&#039; =&gt; &#039;https&#039;, \/\/ APCu ja Redis -v\u00e4limuisti &#039;memcache.local&#039; =&gt; &#039;\\OC\\Memcache\\APCu&#039;, &#039;memcache.distributed&#039; =&gt; &#039;\\OC\\Memcache\\Redis&#039;, &#039;memcache.locking&#039; =&gt; &#039;\\OC\\Memcache\\Redis&#039;, &#039;redis&#039; =&gt; [ &#039;host&#039; =&gt; &#039;localhost&#039;, &#039;port&#039; =&gt; 6379, ], \/\/ Lokituksen ja roskakorin hallinta &#039;loglevel&#039; =&gt; 2, &#039;trashbin_retention_obligation&#039; =&gt; &#039;auto, 30&#039;, &#039;versions_retention_obligation&#039; =&gt; &#039;auto, 30&#039;, 3. Ota k\u00e4ytt\u00f6\u00f6n System Cron: V\u00e4henn\u00e4 selaimen latausaikoja siirt\u00e4m\u00e4ll\u00e4 taustaty\u00f6t k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n vastuulle. sudo crontab -u www-data -e # Lis\u00e4\u00e4 rivi: *\/5 * * * * php -f \/var\/www\/nextcloud\/cron.php Vaihe 6: Nextcloud Talk HPB (High-Performance Backend) Talk-sovellus vaatii tehokkaan signaalipalvelimen yli nelj\u00e4n hengen kokouksia varten. Asennamme NATS- ja Spreed-bin\u00e4\u00e4rit natiivisti. HUOM: K\u00e4y kuitenkin tarkistamassa uusimmat versiot ja lataa ne: https:\/\/github.com\/nats-io\/nats-server\/releases\u00a0ja\u00a0https:\/\/github.com\/strukturag\/nextcloud-spreed-signaling\/releases 1. NATS-palvelimen asennus: wget https:\/\/github.com\/nats-io\/nats-server\/releases\/download\/v2.10.16\/nats-server-v2.10.16-linux-amd64.tar.gz tar -xzf nats-server-*.tar.gz sudo mv nats-server-*\/nats-server \/usr\/local\/bin\/ 2. Spreed-signaalipalvelimen asennus: wget https:\/\/github.com\/strukturag\/nextcloud-spreed-signaling\/releases\/download\/v1.2.3\/signaling-linux-amd64 sudo mv signaling-linux-amd64 \/usr\/local\/bin\/signaling sudo chmod +x \/usr\/local\/bin\/signaling sudo mkdir \/etc\/signaling 3. HPB-konfiguraatio (\/etc\/signaling\/server.conf): Luo kaksi satunnaista avainta (openssl rand -hex 16) ja sijoita ne hash- ja blockkey-kohtiin. [server] listen = 127.0.0.1:8080 [sessions] hashkey = &lt;GENEROITU_AVAIN_1&gt; blockkey = &lt;GENEROITU_AVAIN_2&gt; [backend] backends = nextcloud allowall = false timeout = 10 connectionsperhost = 8 [nextcloud] backend = https:\/\/pilvi.esimerkki.fi secret = &lt;LUOTU_SALASANA_PALVELIMELLE&gt; [nats] url = nats:\/\/localhost:4222 T\u00e4m\u00e4n j\u00e4lkeen luodaan Systemd-palvelut molemmille ja yhdistet\u00e4\u00e4n HPB Nextcloudin Talk-asetuksista secret avainta k\u00e4ytt\u00e4en. Vaihe 7: Viimeistely (2FA ja Tietokannan Eheys) Lopuksi viimeistelemme j\u00e4rjestelm\u00e4n tietoturvan komentorivin kautta ja varmistamme tietokannan rakenteen. Pakota kaksivaiheinen tunnistautuminen (TOTP) kaikille: sudo -u www-data php \/var\/www\/nextcloud\/occ app:enable twofactor_totp sudo -u www-data php \/var\/www\/nextcloud\/occ twofactorauth:enforce &#8211;on Luo puuttuvat tietokantaindeksit asennuksen j\u00e4ljilt\u00e4: sudo -u www-data php \/var\/www\/nextcloud\/occ db:add-missing-indices Olet nyt onnistuneesti rakentanut palvelimen, joka hy\u00f6dynt\u00e4\u00e4 laitteistosi resursseja suoraan ja tehokkaasti. Oikein konfiguroitu v\u00e4limuistien ketju (APCu -&gt; Redis -&gt; MariaDB RAM Puskuri -&gt; JIT) varmistaa, ett\u00e4 j\u00e4rjestelm\u00e4 pysyy salamannopeana my\u00f6s silloin, kun tallennustilaan lis\u00e4t\u00e4\u00e4n satoja gigatavuja dataa tai kun verkossa on kymmeni\u00e4 samanaikaisia k\u00e4ytt\u00e4ji\u00e4. Palomuurit ja Fail2Ban-s\u00e4\u00e4nn\u00f6t takaavat, ett\u00e4 yritystason datasi pysyy turvassa verkkoon avattuna. Lis\u00e4turvallisuutta saat my\u00f6s k\u00e4ytt\u00e4m\u00e4ll\u00e4 v\u00e4lityspalvelinta Internetin ja palvelimesi v\u00e4lill\u00e4.<\/p>\n","protected":false},"author":1,"featured_media":3201,"comment_status":"closed","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_templately_pack_id":"","_templately_imported_at":"","_templately_source":"","_templately_import_session_id":"","footnotes":""},"categories":[9,10,16,19],"tags":[],"class_list":["post-3200","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-palvelin","category-tietoturva","category-yksityisyys"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Nextcloud &amp; Talk palvelimen turvallinen asennus - Lassin kotisivut<\/title>\n<meta name=\"description\" content=\"T\u00e4ss\u00e4 dokumentiss\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi suositun Nexcloudin asennus omalle palvelimelle sek\u00e4 sen optimointi sek\u00e4 Talk palvelimen asennus.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lassinsivut.eu\/en\/nextcloud-asennus\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nextcloud &amp; Talk palvelimen turvallinen asennus - Lassin kotisivut\" \/>\n<meta property=\"og:description\" content=\"T\u00e4ss\u00e4 dokumentiss\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi suositun Nexcloudin asennus omalle palvelimelle sek\u00e4 sen optimointi sek\u00e4 Talk palvelimen asennus.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lassinsivut.eu\/en\/nextcloud-asennus\/\" \/>\n<meta property=\"og:site_name\" content=\"Lassin kotisivut\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-09T20:55:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-09T21:39:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2026\/07\/Nextcloud-Hub-Logo-1920-2137084773.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"lassi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"lassi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/\"},\"author\":{\"name\":\"lassi\",\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/#\\\/schema\\\/person\\\/1c60c2ce5fe8eb3eb130e6255329e1b2\"},\"headline\":\"Nextcloud &#038; Talk palvelimen turvallinen asennus\",\"datePublished\":\"2026-07-09T20:55:03+00:00\",\"dateModified\":\"2026-07-09T21:39:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/\"},\"wordCount\":626,\"publisher\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/#\\\/schema\\\/person\\\/1c60c2ce5fe8eb3eb130e6255329e1b2\"},\"image\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/lassinsivut.eu\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Nextcloud-Hub-Logo-1920-2137084773.jpg\",\"articleSection\":[\"Linux\",\"Palvelin\",\"Tietoturva\",\"Yksityisyys\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/\",\"url\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/\",\"name\":\"Nextcloud & Talk palvelimen turvallinen asennus - Lassin kotisivut\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/lassinsivut.eu\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Nextcloud-Hub-Logo-1920-2137084773.jpg\",\"datePublished\":\"2026-07-09T20:55:03+00:00\",\"dateModified\":\"2026-07-09T21:39:04+00:00\",\"description\":\"T\u00e4ss\u00e4 dokumentiss\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi suositun Nexcloudin asennus omalle palvelimelle sek\u00e4 sen optimointi sek\u00e4 Talk palvelimen asennus.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/#primaryimage\",\"url\":\"https:\\\/\\\/lassinsivut.eu\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Nextcloud-Hub-Logo-1920-2137084773.jpg\",\"contentUrl\":\"https:\\\/\\\/lassinsivut.eu\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Nextcloud-Hub-Logo-1920-2137084773.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/nextcloud-asennus\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/lassinsivut.eu\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nextcloud &#038; Talk palvelimen turvallinen asennus\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/#website\",\"url\":\"https:\\\/\\\/lassinsivut.eu\\\/\",\"name\":\"Lassin kotisivut\",\"description\":\"Blogi t\u00e4ynn\u00e4 tietotekniikan juttuja, tervetuloa!\",\"publisher\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/#\\\/schema\\\/person\\\/1c60c2ce5fe8eb3eb130e6255329e1b2\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/lassinsivut.eu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/#\\\/schema\\\/person\\\/1c60c2ce5fe8eb3eb130e6255329e1b2\",\"name\":\"lassi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/Profilepicture-Transparent.png\",\"url\":\"https:\\\/\\\/lassinsivut.eu\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/Profilepicture-Transparent.png\",\"contentUrl\":\"https:\\\/\\\/lassinsivut.eu\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/Profilepicture-Transparent.png\",\"width\":1080,\"height\":1083,\"caption\":\"lassi\"},\"logo\":{\"@id\":\"https:\\\/\\\/lassinsivut.eu\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/Profilepicture-Transparent.png\"},\"sameAs\":[\"https:\\\/\\\/lassinsivut.eu\"],\"url\":\"https:\\\/\\\/lassinsivut.eu\\\/en\\\/author\\\/lassi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Nextcloud & Talk palvelimen turvallinen asennus - Lassin kotisivut","description":"T\u00e4ss\u00e4 dokumentiss\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi suositun Nexcloudin asennus omalle palvelimelle sek\u00e4 sen optimointi sek\u00e4 Talk palvelimen asennus.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lassinsivut.eu\/en\/nextcloud-asennus\/","og_locale":"en_US","og_type":"article","og_title":"Nextcloud & Talk palvelimen turvallinen asennus - Lassin kotisivut","og_description":"T\u00e4ss\u00e4 dokumentiss\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi suositun Nexcloudin asennus omalle palvelimelle sek\u00e4 sen optimointi sek\u00e4 Talk palvelimen asennus.","og_url":"https:\/\/lassinsivut.eu\/en\/nextcloud-asennus\/","og_site_name":"Lassin kotisivut","article_published_time":"2026-07-09T20:55:03+00:00","article_modified_time":"2026-07-09T21:39:04+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2026\/07\/Nextcloud-Hub-Logo-1920-2137084773.jpg","type":"image\/jpeg"}],"author":"lassi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"lassi","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/#article","isPartOf":{"@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/"},"author":{"name":"lassi","@id":"https:\/\/lassinsivut.eu\/#\/schema\/person\/1c60c2ce5fe8eb3eb130e6255329e1b2"},"headline":"Nextcloud &#038; Talk palvelimen turvallinen asennus","datePublished":"2026-07-09T20:55:03+00:00","dateModified":"2026-07-09T21:39:04+00:00","mainEntityOfPage":{"@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/"},"wordCount":626,"publisher":{"@id":"https:\/\/lassinsivut.eu\/#\/schema\/person\/1c60c2ce5fe8eb3eb130e6255329e1b2"},"image":{"@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/#primaryimage"},"thumbnailUrl":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2026\/07\/Nextcloud-Hub-Logo-1920-2137084773.jpg","articleSection":["Linux","Palvelin","Tietoturva","Yksityisyys"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/","url":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/","name":"Nextcloud & Talk palvelimen turvallinen asennus - Lassin kotisivut","isPartOf":{"@id":"https:\/\/lassinsivut.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/#primaryimage"},"image":{"@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/#primaryimage"},"thumbnailUrl":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2026\/07\/Nextcloud-Hub-Logo-1920-2137084773.jpg","datePublished":"2026-07-09T20:55:03+00:00","dateModified":"2026-07-09T21:39:04+00:00","description":"T\u00e4ss\u00e4 dokumentiss\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi suositun Nexcloudin asennus omalle palvelimelle sek\u00e4 sen optimointi sek\u00e4 Talk palvelimen asennus.","breadcrumb":{"@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lassinsivut.eu\/nextcloud-asennus\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/#primaryimage","url":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2026\/07\/Nextcloud-Hub-Logo-1920-2137084773.jpg","contentUrl":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2026\/07\/Nextcloud-Hub-Logo-1920-2137084773.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/lassinsivut.eu\/nextcloud-asennus\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lassinsivut.eu\/"},{"@type":"ListItem","position":2,"name":"Nextcloud &#038; Talk palvelimen turvallinen asennus"}]},{"@type":"WebSite","@id":"https:\/\/lassinsivut.eu\/#website","url":"https:\/\/lassinsivut.eu\/","name":"Lassi's homepage","description":"Blogi t\u00e4ynn\u00e4 tietotekniikan juttuja, tervetuloa!","publisher":{"@id":"https:\/\/lassinsivut.eu\/#\/schema\/person\/1c60c2ce5fe8eb3eb130e6255329e1b2"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lassinsivut.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/lassinsivut.eu\/#\/schema\/person\/1c60c2ce5fe8eb3eb130e6255329e1b2","name":"lassi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2021\/11\/Profilepicture-Transparent.png","url":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2021\/11\/Profilepicture-Transparent.png","contentUrl":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2021\/11\/Profilepicture-Transparent.png","width":1080,"height":1083,"caption":"lassi"},"logo":{"@id":"https:\/\/lassinsivut.eu\/wp-content\/uploads\/2021\/11\/Profilepicture-Transparent.png"},"sameAs":["https:\/\/lassinsivut.eu"],"url":"https:\/\/lassinsivut.eu\/en\/author\/lassi\/"}]}},"_links":{"self":[{"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/posts\/3200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/comments?post=3200"}],"version-history":[{"count":7,"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/posts\/3200\/revisions"}],"predecessor-version":[{"id":3209,"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/posts\/3200\/revisions\/3209"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/media\/3201"}],"wp:attachment":[{"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/media?parent=3200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/categories?post=3200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lassinsivut.eu\/en\/wp-json\/wp\/v2\/tags?post=3200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}