64 lines
2.6 KiB

# Hackware Web Services
## Description
Hackware Web Services or "Hawese" is a modular web API which returns JSON responses.
Its structure is based on Laravel/Lumen 5.8+ packages. It can be mounted as a monolithical web service or as various microservices depeding on how you structure your `composer.json`.
## Features (packages)
- [Core](https://git.hackware.cl/hawese-core): Lightweight base class for table based models, standardized JSON responses and User model.
- [Wallet](https://git.hackware.cl/hawese-wallet): Digital wallet that associates transactions and balance to unique users.
- [Payment](https://git.hackware.cl/hawese-payment): Payment through various payment gateways. Currently Khipu and Flow.
## How to pronounce Hawese?
You can pronounce it as "how easy".
## Run it
### Requirements
Please refer to the requirements of each package. Basically the same as of Lumen/Laravel 5.8+ and composer.
### Installation
#### Manual
1. `git clone https://git.hackware.cl/hawese`
2. Setup your environment variables based on the `.env.example` file. It will load .env.*APP_ENV* if you set the APP\_ENV environment variable beforehand. Elsewhere it will load the `.env` file.
3. Add the desired hawese projects (`hackware/hawese-{payment,wallet,seeds}`) to composer.json
4. `composer install && composer run collect-public`.
4. Run from the `public/` path.
#### Automated
1. `git clone https://git.hackware.cl/hawese`
2. Run `setup/setup.sh` on Debian as root, or optionally `setup/setup_lxd.sh` with the proper environment variables configured (defined on those files).
3. Manually edit the `.env` file for missing configurations.
4. Setup your endpoints through DNS or `/etc/hosts`.
Find detailed documentation and configuration options in each project.
### Tests
If you are developing Hawese run tests with `composer test` or `composer test-coverage`.
Add directories for your project tests as testsuite on `phpunit.xml.dist` and to its whitelist for coverage analysis.
## Copyright and licensing
Copyright 2019-2022 [Hackware SpA](https://hackware.cl).
This project license defaults to GPL 3.0 or later if you use any of the following projects (since are AGPL licensed):
- `hackware/hawese-wallet`
- `hackware/hawese-payment`
If you don't use that dependencies in the `composer.json` file then you can choose to use the MIT-0 license terms.
The core library `hackware/hawese-core` is released under the terms of the MIT license. Non listed dependencies are released under permisive licenses too.
I will greatly appreaciate your contributions back. Please free your software too.