To repozytorium zawiera skonfigurowane środowisko deweloperskie naszego forum - przygotowane przez grupę CodersCommunity. Dzięki temu możliwe jest łatwe i szybkie odwzorowanie warunków środowiska produkcyjnego u każdego, kto zechce pomóc przy rozwoju kodu.
Aby móc korzystać z developerskiego środowiska wymagane jest posiadanie następującego oprogramowania:
- Docker >= 19.0.0
- Docker Compose >= 1.25
Dockera instalujemy korzystając ze wskazówek dostępnych pod adresem: https://docs.docker.com/install/, a Docker Compose według informacji ze strony: https://docs.docker.com/compose/install/.
Po zainstalowaniu oprogramowania pozostaje nam ściągnąć projekt z GitHuba:
git clone https://github.com/CodersCommunity/forum.pasja-informatyki.local.git
Teraz należy skopiować zawartość pliku web_socket.example.env
do pliku web_socket.env
.
Następnie uruchamiamy Dockera:
docker-compose up -d
Alternatywnym sposobem jest skorzystanie z programu XAMPP lub podobnego, oferującego Apache, PHP oraz MySQL. W tym celu kieruj się niniejszą instrukcją: https://drive.google.com/file/d/0B_0lVIhwL9LWMjV1eGJyTk0yMTQ/view. Zalecamy jednak skorzystanie z Dockera, aby każdy z nas miał identyczne środowisko.
Gdy mamy już uruchomione kontenery, instalujemy zależności przy użyciu Composera będąc w katalogu forum
. Możemy to zrobić np. przy użyciu poniższego polecenia:
docker-compose exec -u 1000 www bash -c "cd forum && composer install"
Teraz należy skopiować plik forum/qa-config-example.php
do forum/qa-config.php
. Jest to wymagane do poprawnego uruchomienia forum. W przypadku braku pliku konfiguracyjnego, po uruchomieniu poinformuje Cię o tym stosowny wyjątek.
Forum zostało uruchomione - wejdź pod adres http://localhost!
Przygotowane środowisko zawiera:
- PHP 7.1
- Xdebug
- Composer
- MySQL (bez phpMyAdmin)
- Apache
- MailHog
Najważniejszym miejscem jest katalog /forum
. W nim znajduje się kod naszego forum, włącznie z pluginami. W katalogu /dump
dodany jest aktualny zrzut bazy danych przygotowany i w pełni skonfigurowany dla środowiska testowego. Istnieje również katalog /tests
, w którym trzeba umieszczać kod testujący nasze zmiany.
Po zainstalowaniu forum lokalnie, masz dostęp do następujących kont:
superadmin
admin
moderator
redaktor
ekspert
ekspertkategoria
user
Login i hasło są takie same oraz odzwierciedlają jednocześnie rangę użytkownika, która nadaje określone uprawnienia. ekspertkategoria
- jest to ekspert przypisany tylko do jednej kategorii na forum, sam ekspert
działa na całym forum. user
to standardowy użytkownik bez żadnej rangi.
W razie potrzeby zmodyfikuj konfigurację w pliku qa-config.php
. Nie zmieniaj ani nie usuwaj pliku qa-config-example.php
.
Jeżeli potrzebujesz zmienić konfigurację środowiska Dockera, należy nadpisać plik docker-compose.yml
poprzez stworzenie pliku docker-compose.override.yml
(nie zostanie on zauważony przez Gita). Wystarczy, że będzie on zawierał to, co chcesz zmienić. Więcej informacji na ten temat: https://docs.docker.com/compose/extends/. Nie modyfikuj pliku docker-compose.yml
.
Aby wybrać odpowiednią wersję obrazu kontenera, w pliku docker-compose.override.yml
odkomentuj odpowiednią linię z nazwą obrazu i wykomentuj linię z nazwą nieużywanego obrazu. Dostępne obrazy można zobaczyć tutaj: https://github.com/orgs/CodersCommunity/packages/container/package/http-websocket-server
Nie wprowadzaj zmian do pliku docker-compose.yml
Jest zainstalowany, ale domyślnie wyłączony. Możesz go łatwo włączyć i dostosować konfigurację do swoich potrzeb poprzez nadpisanie konfiguracji Dockera, jak opisano to powyżej. Domyślną konfigurację możesz podejrzeć w pliku docker-compose.yml
.
Przykładowy plik docker-compose.override.yml
, który uruchomi Xdebug:
version: '3'
services:
www:
build:
args:
- XDEBUG_REMOTE_ENABLE=on
W celu łatwego testowania maili dostępny jest MailHog. Wszystkie maile, które zostaną wysłane z lokalnego forum, trafiają do jednej skrzynki znajdującej się pod adresem http://localhost:8025. Jeżeli potrzebujesz wysłać maila na wprowadzony adres e-mail, musisz skonfigurować własne konto SMTP w zakładce "Emaile" panelu administracyjnego.
Aby wysyłać powiadomienia o nowych wydarzeniach na forum (takich jak dodanie postu czy komentarza) bez konieczności odświeżania, forum łączy się z WebSocketem i wysyła do niego eventy z forum, a następnie serwer WebSocketa wysyła informacje o zmianie do użytkowników. Dla ułatwienia, WebSocket jest postawiony obok forum za pomocą docker-compose.
Jeżeli nie korzystasz z Dockera, sklonuj repozytorium z serwerem websocketa:
git clone https://github.com/CodersCommunity/http-websocket-server.git
a następnie odpal lokalnie server z WebSocketem według instrukcji załączonych na repozytorium: https://github.com/CodersCommunity/http-websocket-server
Następnie w pliku qa-config.php
zamień linię:
define('QA_WS_URL', 'http://web_socket:3000');
na:
define('QA_WS_URL', 'http://localhost:3000');
Dane do bazy MySQL: (znajdują się w pliku docker-compose.yml
)
mysql:
root_password: root
database: forum
user: test
password: test
Dump z bazą danych znajduje się w pliku /dump/forum.sql
. W przypadku zmiany danych, nie zapomnij także o zmianie ich w pliku qa-config.php
.
Wszelkie poprawki dotyczące kodu strony podlegają CodeReview oraz testom.
Została włączona opcja blokady pushowania na branch master
, dodatkowo tylko grupa Owners posiada prawa do mergowania, więc nie każdy kto chce będzie mógł te zmiany wprowadzać.
Więcej informacji na temat zasad współpracy można znaleźć w pliku CONTRIBUTING.