# Website
This is the repo containing my personal website. It is based on simple HTML pages, with custom HTML componetes, for things like header and footer. The components are written in pure CS and compiled with webpackt to one big file. In this step also the dependencies are getting injected. Stylesheets are written in stylus and then compiled to CSS in the build process. For the backend there is a GraphQL endpoint at `/API/graphql.php` which holds most of the resources, for files (ebay images and S3) there are seperate endpoints in the API directory. Comments and the blog ist stored in a MySQL Database.

## Dev-Setup
### Requirements
* NodeJS
* Yarn
* PHP 8 with the following extensions:
    * mysqli
    * mbstring
    * curl
    * simplexml
* Composer

### Setup
1. Install the node dependencies: `yarn install`
2. Install the PHP depdendencies: `composer install`
3. Start the dev environment: `yarn watch`
This will start the compile service for the JavaScript and the stylus files and also start a PHP dev server on port 1234

## Production-Setup
For production there is a docker images with the following name available: `gitlab.jonasled.de/jonasled/website:latest`. The configuration is stored in the config PHP, a example file is available in this repo in the `/public/API/lib` folder. Later this file has to be mounted at `/var/www/html/API/lib/config.php` A example compose could look like this: 
```yaml
version: '3.2'

services:
  website:
    image: gitlab.jonasled.de/jonasled/website:latest
    restart: always
    volumes:
      ./config.php:/var/www/html/API/lib/config.php
    ports:
      - "80:80"
```