Installationsguide
Översikt
Denna guide beskriver hur ByggArkiv installeras och konfigureras på en Synology DS223j NAS för både lokal och extern webbåtkomst. ByggArkiv är ett komplett system för dokumentation av byggprojekt med bilduppladdning, användarhantering och avancerad filtrering med AND-operation.
Förutsättningar
Hårdvara
- Synology DS223j NAS (eller liknande modell)
- Minst 10 GB ledigt diskutrymme för bilder
- Stabil internetanslutning för extern åtkomst
- Rekommenderat: SSD-cache för bättre prestanda
Programvara
- DSM (DiskStation Manager) 7.0 eller senare
- Web Station (installeras via Package Center)
- PHP 8.0 eller senare (rekommenderat för HEIC-stöd)
- Synology Drive (valfritt för synkronisering)
- SSH-åtkomst aktiverat för automatisk deployment
Steg 1: Förberedelser på Synology
1.1 Installera Web Station
- Öppna Package Center på DSM
- Sök efter Web Station
- Klicka Installera
- Följ installationsguiden
- Aktivera Web Station efter installation
1.2 Installera PHP
- I Package Center, sök efter PHP
- Installera PHP 8.0 eller senare version (rekommenderat)
- Aktivera följande PHP-moduler:
fileinfo - Filtypsdetektering
gd - Bildhantering och miniatyrer
json - JSON-stöd för metadata
mbstring - Multibyte-stränghantering
opcache - PHP-optimering (rekommenderat)
1.3 Aktivera SSH-åtkomst
- Öppna Control Panel → Terminal & SNMP
- Aktivera Enable SSH service
- Sätt SSH port till standard 22 (eller ändra om nödvändigt)
- Aktivera SFTP service för filöverföring
1.4 Skapa webdeploy-användare
- Öppna Control Panel → User & Group
- Klicka Create → User
- Fyll i användarinformation:
- Username:
webdeploy
- Password: Välj en stark lösenord
- Email: (valfritt)
- Klicka Next
- Gruppmedlemskap:
- Lägg till i gruppen
http
- Lägg till i gruppen
administrators (för fullständig åtkomst)
- Klicka Next
- Rättigheter:
- Shared folder permissions: Fullständig kontroll på
web mappen
- Application permissions: Tillåt alla applikationer
- Klicka Next och Apply
1.5 Skapa web-mappstruktur
- Öppna File Station
- Navigera till
/volume1/
- Skapa mappen
web om den inte redan finns
- Skapa undermappen
byggarkiv i web mappen
- Sätt rättigheter på web-mappen:
- Högerklicka på
web mappen → Properties → Permissions
- Owner:
webdeploy
- Group:
http
- Permissions:
webdeploy: Full Control
http: Read/Write
administrators: Full Control
- Sätt rättigheter på byggarkiv-mappen:
- Högerklicka på
byggarkiv mappen → Properties → Permissions
- Owner:
webdeploy
- Group:
http
- Permissions:
webdeploy: Full Control
http: Read/Write
administrators: Full Control
- Skapa nödvändiga undermappar:
byggarkiv/data/ (för konfigurationsfiler)
byggarkiv/uploads/ (för uppladdade filer)
byggarkiv/adm/ (för administrativa filer)
- Sätt rättigheter på undermappar:
data/: webdeploy ägare, http grupp, 775 rättigheter
uploads/: webdeploy ägare, http grupp, 775 rättigheter
adm/: webdeploy ägare, http grupp, 775 rättigheter
1.6 Skapa delad mapp (alternativ metod)
- Öppna File Station
- Skapa en ny delad mapp:
byggarkiv (eller ditt önskade namn)
- Sätt rättigheter:
- Owner:
webdeploy
- Group:
http
- Administratörer: Fullständig kontroll
- http: Läs/Skriv
- webdeploy: Fullständig kontroll
- Användare: Läs/Skriv (om användare ska ha åtkomst)
- Aktivera Recycle Bin för säker filhantering
Steg 2: Ladda upp filer
2.1 Via automatisk deployment (Rekommenderat)
- Konfigurera deployment:
- Redigera
deploy/deploy_config.sh med dina NAS-inställningar
- Sätt
SSH_PATH till rätt mapp på NAS (t.ex. /volume1/web/byggarkiv)
- Konfigurera SSH-anslutning med
webdeploy användare och lösenord
- Viktigt:
webdeploy måste ha fullständig kontroll på web mappen
- Kör deployment:
./deploy/deploy_remote.sh
- Funktioner:
- Automatisk filkopiering via SFTP
- Rättighetshantering (använder
webdeploy användare)
- Skydd av data- och uploads-mappar
- Verifiering av deployment
- Automatisk sättning av rättigheter till
webdeploy ägare och http grupp
2.2 Via File Station (manuell)
- Öppna File Station
- Navigera till
byggarkiv mappen
- Ladda upp alla ByggArkiv-filer:
byggarkiv/
├── index.html # Huvudformulär med projektvisning
├── view_project.php # Ny sida för att visa projektbilder
├── config.php # Konfigurationsfil
├── upload.php # Uppladdningshantering
├── logo.png # Logotyp
├── adm/ # Administrativa funktioner
│ ├── admin.php # Huvudadmin-panel (skyddad)
│ ├── list1p.php # Avancerad filtrering med AND-operation
│ ├── listallp.php # Alla uppladdningar
│ ├── project_view.php # Projektvisning
│ ├── user_view.php # Användarvisning
│ ├── userids.html # Användarhantering
│ ├── chpw.php # Lösenordsbyte
│ ├── diag.php # Systemdiagnostik
│ └── data_functions.php # Datahantering
├── deploy/ # Deployment-verktyg
│ ├── deploy_config.sh # SSH-konfiguration
│ └── deploy_remote.sh # Automatisk deployment
├── data/ # Konfigurationsdata
│ ├── projects.json # Projektlista
│ └── userids.json # Användardata
└── uploads/ # Uppladdade filer (skapas automatiskt)
2.3 Via SMB/FTP
- Anslut till NAS via SMB eller FTP
- Kopiera filerna till
byggarkiv mappen
- Se till att alla filer har rätt rättigheter
- Verifiera att PHP-filerna inte har körrättigheter
2.4 Via Git (avancerat)
- Installera Git Server via Package Center
- Klona ByggArkiv-repository
- Konfigurera automatisk synkronisering
Steg 3: Konfigurera Web Station
3.1 Skapa virtuell host
- Öppna Web Station
- Gå till Virtual Host
- Klicka Create
- Fyll i följande inställningar:
- Port: 80 (HTTP) eller 443 (HTTPS)
- Document root:
/volume1/web/byggarkiv (eller din valda sökväg)
- Server name:
byggarkiv.local (eller din domän)
- HTTP backend server: Nginx (rekommenderat för prestanda)
- PHP version: Välj PHP 8.0 eller senare
3.2 PHP-inställningar
- I Web Station, gå till PHP Settings
- Välj din PHP-version
- Aktivera följande inställningar:
file_uploads = On
upload_max_filesize = 25M
post_max_size = 30M
max_execution_time = 300
memory_limit = 256M
max_file_uploads = 50
- För HEIC-stöd, aktivera:
extension=imagick
3.3 Rättigheter
- Öppna File Station
- Högerklicka på
byggarkiv mappen
- Välj Properties → Permissions
- Sätt följande rättigheter:
http: Read/Write
webdeploy: Read/Write
administrators: Full Control
- Verifiera att
uploads/ mappen har skrivrättigheter
Steg 4: Konfigurera ByggArkiv
4.1 Konfigurera säkerhet
- PIN-kod är inaktiverad som standard
- Aktivering av PIN-kod görs via konfiguration
- Viktigt: Använd starka hemligheter i produktion
4.2 Konfigurera config.php
- Öppna
config.php i File Station
- Uppdatera följande inställningar:
// Ändra SHARED_SECRET om du vill använda en annan nyckel
define('SHARED_SECRET', 'ditt-lösenord-här');
// Sökväg till uploads-mappen
define('UPLOAD_ROOT', '/volume1/web/byggarkiv/uploads');
// Tidszon (för svenska förhållanden)
date_default_timezone_set('Europe/Stockholm');
4.3 Skapa projekt och användare
- Skapa
data/projects.json:
[
{"id": "1001", "name": "Villa Sjöblick, Storgatan 15"},
{"id": "1002", "name": "BRF Björken, Ekvägen 7"}
]
- Skapa
data/userids.json:
[
{
"user_id": "micke",
"full_name": "Micke Andersson",
"mobile": "070-123 45 67",
"inactive": false
}
]
4.4 Testa lokal åtkomst
- Öppna webbläsare
- Gå till:
http://[NAS-IP]/byggarkiv/
- Testa att ladda upp en bild
- Verifiera att bilder sparas i
uploads/ mappen
- Testa admin-panelen:
http://[NAS-IP]/byggarkiv/adm/admin.php
- Testa projektvisning:
http://[NAS-IP]/byggarkiv/view_project.php
Steg 5: Konfigurera extern webbåtkomst
5.1 Port Forwarding (Router)
- Logga in på din router
- Gå till Port Forwarding eller Virtual Server
- Skapa en ny regel:
- External Port: 80 (HTTP) och 443 (HTTPS)
- Internal IP: Din NAS IP-adress
- Internal Port: 80 (HTTP) och 443 (HTTPS)
- Protocol: TCP
- Name: ByggArkiv
5.2 Synology Firewall
- Öppna Control Panel → Security → Firewall
- Skapa en ny regel:
- Port: 80, 443
- Source IP: Alla (eller specifika IP-adresser)
- Action: Allow
- Description: ByggArkiv Web Access
5.3 QuickConnect (Alternativ)
- Öppna Control Panel → External Access → QuickConnect
- Aktivera QuickConnect
- Skapa en QuickConnect ID
- Använd:
http://[quickconnect-id].quickconnect.to/byggarkiv/
- Notera: QuickConnect kan vara långsammare än direkt åtkomst
5.4 Domän och SSL (Rekommenderat)
- Köp en domän (t.ex. via Namecheap, GoDaddy)
- Konfigurera DNS:
- Skapa A-record:
byggarkiv.dindomän.se → Din publika IP
- Skapa CNAME:
www.byggarkiv.dindomän.se → byggarkiv.dindomän.se
- SSL-certifikat:
- I Web Station, gå till SSL Certificate
- Ladda upp ditt SSL-certifikat
- Aktivera HTTPS för din virtuella host
- Alternativ: Använd Let's Encrypt för gratis SSL
Steg 6: Säkerhetskonfiguration
6.1 Synology Security Advisor
- Öppna Security Advisor
- Kör säkerhetsscanning
- Följ rekommendationerna
- Aktivera Auto Block för skydd mot attacker
6.2 Brandvägg
- Control Panel → Security → Firewall
- Aktivera brandvägg
- Tillåt endast nödvändiga portar
- Skapa regler för specifika IP-adresser vid behov
6.3 Auto Block
- Control Panel → Security → Protection
- Aktivera Auto Block
- Sätt lämpliga tröskelvärden:
- Failed login attempts: 5
- Block duration: 1 timme
- Block IP permanently: Aktivera efter 10 misslyckade försök
6.4 SSH-säkerhet
- Control Panel → Terminal & SNMP
- Begränsa SSH-åtkomst till specifika IP-adresser
- Använd SSH-nycklar istället för lösenord (rekommenderat)
- Ändra standard SSH-port (valfritt)
- Aktivera Auto Block för SSH
6.5 Backup
- Hyper Backup → Create → Data backup task
- Välj
byggarkiv mappen
- Schemalägg daglig backup
- Aktivera Backup rotation för att spara plats
- Testa återställning regelbundet
Steg 7: Prestandaoptimering
7.1 Web Station Cache
- I Web Station, gå till Cache
- Aktivera Enable cache
- Sätt cache-tid till 3600 sekunder
- Aktivera Gzip compression
7.2 PHP Optimering
- I Web Station → PHP Settings
- Optimera följande värden:
opcache.enable = 1
opcache.memory_consumption = 128
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
7.3 Diskutrymme
- Storage Manager → Storage Pool
- Övervaka ledigt utrymme
- Sätt upp varningar vid 80% användning
- Aktivera SSD cache om tillgängligt
- Använd SHR (Synology Hybrid RAID) för bättre prestanda
7.4 Bildoptimering
- Aktivera WebP-stöd i PHP
- Implementera automatisk miniatyrgenerering
- Använd progressive JPEG för bättre användarupplevelse
Steg 8: Underhåll och övervakning
8.1 Loggövervakning
- Log Center → Log
- Övervaka webbserverloggar
- Sätt upp varningar för fel
- Konfigurera Log rotation för att spara plats
8.2 Prestandaövervakning
- Resource Monitor
- Övervaka CPU, RAM och diskutrymme
- Sätt upp varningar
- Använd SNMP för extern övervakning
8.3 Uppdateringar
- Control Panel → Update & Restore
- Aktivera automatiska uppdateringar
- Schemalägg uppdateringar under natten
- Testa uppdateringar i testmiljö först
8.4 Regelbunden underhåll
- Månadsvis:
- Kontrollera diskutrymme
- Verifiera backup-status
- Uppdatera användarlista
- Kontrollera deployment-status
- Kvartalsvis:
- Säkerhetsscanning
- Prestandaoptimering
- Rensa attic-mapp
- Verifiera SSH-anslutningar
Felsökning
Vanliga problem
Bilder laddas inte upp
- Kontrollera filrättigheter för
uploads/ mappen
- Verifiera PHP
upload_max_filesize inställning
- Kontrollera diskutrymme
- Verifiera att användaren är aktiv
- Kontrollera att lösenordet är korrekt
Extern åtkomst fungerar inte
- Verifiera port forwarding i router
- Kontrollera Synology brandvägg
- Testa med QuickConnect som alternativ
- Verifiera DNS-inställningar
- Kontrollera ISP-blockering
Låg prestanda
- Aktivera Web Station cache
- Optimera PHP-inställningar
- Överväg SSD-cache för diskutrymme
- Kontrollera nätverksbandbredd
- Optimera bildstorlekar
SSL-certifikat problem
- Verifiera domännamn i certifikat
- Kontrollera DNS-inställningar
- Använd Let's Encrypt för gratis SSL
- Verifiera certifikatets giltighetstid
- Kontrollera certifikatkedja
HEIC-filer fungerar inte
- Verifiera PHP-version (8.0+ rekommenderat)
- Kontrollera att
imagick är installerat
- Verifiera att
fileinfo är aktiverat
- Testa med olika iOS-versioner
Deployment misslyckas
- Verifiera SSH-anslutning och användarrättigheter
- Kontrollera sökvägar i
deploy_config.sh
- Verifiera att
webdeploy-användaren har rätt rättigheter
- Kontrollera att mappar existerar på NAS
- Verifiera SFTP-inställningar
Filter fungerar inte korrekt
- Kontrollera att båda filter kan vara aktiva samtidigt
- Verifiera AND-operation mellan projekt- och användarfilter
- Kontrollera JavaScript-funktioner i
list1p.php
- Verifiera URL-parametrar och navigation
Avancerad felsökning
Systemdiagnostik
- Använd
adm/diag.php för systemkontroll
- Kontrollera PHP-information via
adm/phpinfo.php
- Verifiera filrättigheter och mappstruktur
- Kontrollera loggfiler för detaljerade felmeddelanden
Nätverksdiagnostik
- Använd
ping och traceroute för nätverksproblem
- Kontrollera router-loggar
- Verifiera ISP-inställningar
- Testa med olika enheter och nätverk
Deployment-diagnostik
- Testa SSH-anslutning manuellt
- Verifiera SFTP-åtkomst
- Kontrollera användarrättigheter på NAS
- Verifiera sökvägar och mappstruktur
Support
Synology Support
- Teknisk support: support.synology.com
- Community: community.synology.com
- Dokumentation: synology.com/en-us/support
- Knowledge Base: synology.com/en-us/knowledgebase
ByggArkiv Support
- Dokumentation: Se SPECIFIKATION.md
- Felsökning: Kontrollera loggar och rättigheter
- Uppdateringar: Regelbundna säkerhetsuppdateringar
- Community: GitLab-repository för buggrapporter
- Deployment-hjälp: Se deployment-verktyg och konfiguration
Externa resurser
- PHP-dokumentation: php.net/manual
- Webbserver: Apache.org eller nginx.org
- SSL-certifikat: Let's Encrypt (letsencrypt.org)
- SSH/SFTP: OpenSSH dokumentation