A server for any Peratorakka client.
Peratorakka is a software system aimed to manage and track personal finances. It is made up of a client and server. In this repository, it has an implementation of the server which process the data and stores them in any compatible database. The database may be an instance of PostgreSQL server, MySQL server, or others as long as it is supported by CodeIgniter framework. CodeIgniter is the framework that Peratorakka server builds on.
There is a public server available right now for anyone to try the Peratorakka
server. Use https://site--server--xtzwjgsybx5v.code.run
on any compatible
Peratorakka client with test@example.com
as the email and 12345678
as the
password. The public Peratorakka client is compatible with the public
Peratorakka server. To anyone who uses the public Peratorakka server, please
use the server responsibly, so others can try it.
I still outlined the instructions below in case someone wants to host an instance of Peratorakka server.
For more information on the abilities of the system, please read the author's post.
Some parts of the repository was based from filled_composer_json
branch of
Web Template.
The template has been specialized for back-end development.
Other parts were auto-generated using the command composer create-project codeigniter4/appstarter
. Therefore, any changes in composer-installable app
starter development repository should be updated if necessary.
The installation steps may be a bit technical and requires admins to be knowledgeable on setting environment variables.
PHP version 7.4 or higher is required, with the following extensions installed:
Additionally, make sure that the following extensions are enabled in your PHP:
- json (enabled by default - don't turn it off)
- mysqlnd if you plan to use MySQL
- libcurl if you plan to use the HTTP\CURLRequest library
- Copy
.env.lax.example
to.env
and tailor the configuration for your machine, specifically thebaseURL
and any database settings. - Run
composer install --no-dev
. Install dependencies for production. - Run
composer run migrate:all
. It is recommended to run the command every update.
Below are instructions to host your application in a container. However, they are not yet clear and may vary depending on machine and admin's preferences.
- Copy
env.container.example
to.env.container
and tailor the configuration for your container. - Copy
env
to.env
and tailor the configuration for your server, specifically thebaseURL
and any database settings. Note that.env
is for the server inside the container while.env.container
is for the container itself. - Use
host.docker.internal
for hostname to connect the database server and HTTP server correctly. - Run
docker compose --env-file .env.container up --detach
. - Run
docker compose --env-file .env.container up --detach --build
if you want to rebuild the HTTP server after receiving updates by usinggit pull origin master
.
If you want to contribute, the repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.
- Node.js environment
- pnpm (optional)
-
By running the command below, all your commits will be linted to follow the Conventional Commits specification.
$ npm install
Or if you have installed pnpm, run the following command:
$ pnpm install
-
To generate the change log automatically, run the command below:
$ npx changelogen --from=[tag name or branch name or commit itself] --to=master
To synchronize the files in this repository's history from the framework's application space:
- Reset/rebase the
master
branch on any desired branch. - Run
Copy-Item vendor/codeigniter4/framework/[path to the updated file] [path to the old file on your root]
.
The repository is licensed under MIT.
Please read the contributing guide for different ways to contribute in the project.
You can also make a financial contribution, no matter how small, to support its development and maintenance.
Coded by Kenneth Trecy Tobias.
This personal project may contain references to trademarks, which are included in good faith. However, it is important to note that such references do not indicate any endorsement, affiliation, or sponsorship by the respective trademark holders unless explicitly stated.