AJenbo/agcms

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# AGcms

[![Test](https://github.com/AJenbo/agcms/actions/workflows/test.yml/badge.svg)](https://github.com/AJenbo/agcms/actions/workflows/test.yml)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/5d172d5d3df840c4bf958fed492d54b5)](https://www.codacy.com/gh/AJenbo/agcms/dashboard?utm_source=github.com&utm_medium=referral&utm_content=AJenbo/agcms&utm_campaign=Badge_Grade)
[![Maintainability](https://api.codeclimate.com/v1/badges/9fe78b598a206a6162d7/maintainability)](https://codeclimate.com/github/AJenbo/agcms/maintainability)
[![codebeat badge](https://codebeat.co/badges/16e1065d-d41c-4082-a86c-22af842274f1)](https://codebeat.co/projects/github-com-ajenbo-agcms-master)
[![codecov](https://codecov.io/gh/AJenbo/agcms/branch/master/graph/badge.svg?token=hFHGd8QVSo)](https://codecov.io/gh/AJenbo/agcms)

AGcms is a simple CMS that I built around 2004, since it still has active users, I try to maintain the code base and use it to experiment with differnet tools. The maintenance mostly revolve around keeping the backend in decent shape, code wise.

## Development setup

### PHP

The PHP source is found in application/inc
It's structured to be similar to [Laravel](https://laravel.com/)

### JavaScript

The JavaScript source is found in source/javascript
It's transpiled using webpack, meaning you can write ES6 and having it still work on older browsers that only support ES5

### Prerequisites

- [Composer](https://getcomposer.org/doc/00-intro.md)
- [Docker Compose](https://docs.docker.com/get-docker/)
- [NodeJS](https://nodejs.org/en/download/package-manager/)
- [PHP](https://www.php.net/manual/en/install.php)

It's recommended to follow the install guides for each prerequisite linked above
`build.sh` also depends on wget and unzip

### Install dependencies

Executing `build.sh` will install the project dependencies, except for php development dependencies

#### Install development dependencies

Run the following three commands if you would like to install all dependencies

```bash
./build.sh
cd application
composer install
```

### Running the project

The project comes with a docker-compose.yml that will run an nginx server on port 80 and MySQL on 3306 by default
To start it simply run:

```bash
docker compose up -d
```

If you want to setup a server manually you need to point it to the application folder, you will find the needed sql files for the database in the source folder.

### Running tests

You can run the PHP unit tests via the following command from the project root

```bash
php application/vendor/bin/phpunit
```

## Preparing a release

Run the `build.sh` script
Upload the content of the application folder to your webserver

## Security Vulnerabilities

If you discover a security vulnerability within AGcms, please create an issue on [github](https://github.com/AJenbo/agcms/issues)
All security vulnerabilities will be promptly addressed

## License

AGcms is open-sourced software licensed under the [GPL-2.0 license](https://opensource.org/licenses/GPL-2.0)
As such you are free to base your site on it
If you decide to do so I would love to hear about it :)