Krav
Sett opp byttefil
Installer Docker
Installer diskurs
Konfigurer diskurs
Bootstrap og start Diskurs
Åpne Diskurs i nettleseren din
Feilsøking
Discourse er en ny åpen kildekode-forumløsning som er enkel, ren og grei. Den er implementert med Ruby on Rails, en Postgres-database og en Redis-serverbuffer. Denne opplæringen beskriver hvordan du installerer Discourse på en Vultr VPS med CentOS 7.
Krav
- Vultr VPS med minimum 1 GB RAM.
- CentOS 7 x64 installert på VPS.
Sett opp byttefil
Du må sette opp swap for en 1GB RAM VPS. Hvis VPS-en din har mer enn 1 GB RAM, kan du hoppe over dette trinnet. Vi vil lage en 2GB swapfil for 1GB RAM VPS.
Lag swapfilen.
dd if=/dev/zero of=/swapfile bs=1M count=2048
mkswap /swapfile
chmod 600 /swapfile
Rediger fstab for å legge til swapfilen i filsystemtabellen.
Åpne fstab med vi:
vi /etc/fstab
Legg til følgende linje i filen:
/swapfile swap swap defaults 0 0
Angi policy for byttebruk. Bruk kun swapfilen når systemminnet er lite.
sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | tee -a /etc/sysctl.conf
sysctl vm.vfs_cache_pressure=60
echo vm.vfs_cache_pressure = 60 | tee -a /etc/sysctl.conf
Aktiver swapfilen.
mount -a
swapon -a
Sjekk swapfilstatusen.
swapon -s
Hvis swapfilen er aktivert, vil du se følgende informasjon.
Filename Type Size Used Priority
/swapfile file 2097148 0 -1
Installer Docker
Kjør kommandoen nedenfor for å installere Docker på CentOS 7.
yum install docker
Hvis du har deaktivert SELinux, bør du også deaktivere den i docker.
vi /etc/sysconfig/docker
Kommenter linje 4.
#OPTIONS='--selinux-enabled'
Start docker-tjenesten.
systemctl start docker
systemctl enable docker
Vær oppmerksom på at hvis du starter brannmuren på nytt, må du også starte docker på nytt. Fordi brannmuren vil fjerne docker-kjeden fra iptables når den startes på nytt.
Installer diskurs
Opprett en mappe kalt discourseunder /varog klon Discourse-depotet.
mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse
Gå til discoursemappen.
cd /var/discourse
Kopier malfilen for diskurskonfigurasjon til containermappen.
cp samples/standalone.yml containers/app.yml
Åpne app.ymlmed vi.
vi containers/app.yml
Hvis du bruker en 1GB VPS, setter du den delte db-bufferen til 128MB i app.yml.
db_shared_buffers: "128MB"
Bytt UNICORN_WORKERStil 2 for en 1 GB RAM-forekomst.
## With 2GB we recommend 3-4 workers, with 1GB only 2
UNICORN_WORKERS: 2
Angi e-postadressen din for administratorkontoen. Du trenger denne e-posten for å registrere administratorkontoen på ditt diskursforum.
DISCOURSE_DEVELOPER_EMAILS: 'you@youremail.com'
Angi domenenavnet for Diskurs. For eksempel setter vi den som discourse.example.com, det betyr at den vil være tilgjengelig på URL-en http://discourse.example.com/.
## TODO: The domain name this Discourse instance will respond to
DISCOURSE_HOSTNAME: 'discourse.example.com'
Konfigurer e-postserveren din for Diskurs.
Hvis e-postserveren din er på samme server som Discourse, konfigurer den som følger.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: YOUR_EMAIL_ACCOUNT # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: flase # (optional, default true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
Hvis du bruker en ekstern SMTP-server, vennligst rediger app.ymlsom følger.
DISCOURSE_SMTP_ADDRESS: smtp.example.com # (mandatory)
DISCOURSE_SMTP_PORT: 587 # (optional)
DISCOURSE_SMTP_USER_NAME: your@example.com # (optional)
DISCOURSE_SMTP_PASSWORD: YOURPASSWORD # (optional)
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
Lagre og avslutt app.yml.
Bootstrap og start Diskurs
Kjør kommandoen nedenfor for å starte opp diskurs.
./launcher bootstrap app
Etter at bootstrapping-prosessen er fullført, start Discourse.
./launcher start app
Åpne Diskurs i nettleseren din
På klient-PCen, skriv inn domenenavnet du konfigurerte for Diskurs i app.yml. Du vil se din egen forekomst av Diskurs.
Feilsøking
- Som standard vil Docker lytte på port 80. Hvis port 80 allerede har blitt brukt av Nginx eller Apache, må du flytte den tjenesten til en annen port; eller endre Docker til en annen port. Endre for eksempel "80:80" til "8080:80" for
app.ymlå få Docker til å lytte på port 8080.
- På 1 GB RAM VPS kan det hende at den ikke klarer å oppdatere Discourse til den nye versjonen, og du vil se en "502 Bad Gateway" når du får tilgang til Discourse. Den enkle løsningen på dette problemet er å løpe for
./launcher rebuild appå gjenoppbygge Discourse-forekomsten.