/artwork

a free project management software for the arts

Primary LanguageVueGNU Affero General Public License v3.0AGPL-3.0

About Artwork

Artwork Logo

Artwork is a project organization tool that allows you to schedule projects with multiple events, tasks, and responsibilities. It helps you keep track of all the essential components of your projects. The project can be run using Laravel Sail. A light-weight command-line interface for interacting with Laravel's default Docker development environment. Consult the official documentation for more information.

Installation

Artwork supports to be installed as a standalone application for dedicated servers or as a multi container app powered by docker

Standalone

Prerequisites

Currently only Ubuntu is supported!

Either root account or a user with sudo rights. The installation is fully automated and without prompts.

Installation

Login to your server and run sudo curl -fsSL https://raw.githubusercontent.com/artwork-software/artwork/dev/ubuntu-install.sh | sh

Alternatively copy the ubuntu-install.sh script to your server. No other files, like the rest of the repository, or software installations needed.

Simple give the script executable permissions chmod +x ubuntu-install.sh

and run it ./ubuntu-install.sh

What it will do:

  • Install nginx as webserver and setups up a default config. This will override the default config. Create a backup if you have other services running
  • Install mysql-8 and create a user account for the application and fills the database
  • Install NodeJs in version 18.x (LTS)
  • Create a service for the queue worker
  • Setup a cronjob for the planned schedules
  • Install Soketi (global) as Pusher compatible service and daemonizes it
  • Setup and install PHP with all needed plugins
  • Install meilisearch
  • Installs Artwork itself

It is highly discouraged to run the installer multiple times as some steps are intended to be executed once.

After installation

Edit the .env file located in /var/www/html/.env

Locate the string APP_URL=http://localhost and replace http://localhost with your domain. http or https are required.

For e-mail support locate the following block in the same file and fill in your credentials

MAIL_HOST=
MAIL_PORT=
MAIL_MAILER=
MAIL_USERNAME=Inbox-Name
MAIL_PASSWORD=
MAIL_ENCRYPTION=

SSL

We do not ship dummy or selfsigned certificates with the installation.

SSL should be configured like you would your regular nginx instance https://nginx.org/en/docs/http/configuring_https_servers.html

Soketi, the websocket service, also needs to be configured. See the official documentation https://docs.soketi.app/getting-started/ssl-configuration on how to achieve this.

Docker installation Standalone

Artwork offers a stand alone containerized version of the application. This is useful if you want to run the application on a dedicated server or in a cloud environment.

Prerequisites

Clone the repository git clone git@github.com:artwork-software/artwork.git. You need Docker and the .env of the repository. It is advised to use the .env.prod.example file and rename it to .env

Installation

To boot the container you can simply run the following command:

docker compose -f docker-compose-production.yml up -d

The application needs an app key variable set. For this please run the command docker compose -f docker-compose-production.yml exec artwork php artisan key:generate --show

This will output a key. Copy this key and paste it into the .env file under the APP_KEY variable.

Afterwards reload the container to load the new .env by running docker compose -f docker-compose-production.yml up -d again.

Feel free to modify the .env file to your needs, e.g. with E-Mail credentials.

Updates

You can modify the $ARTWORK_VERSION variable in the .env file. By default it is set to main which is the latest stable version of Artwork. The always pull policy ensures, that it will automatically update to the latest version on the next restart. It will also automatically migrate the database if necessary.

Docker installation (Laravel Sail)

Prerequisites

Laravel Sail is supported on macOS, Linux, and Windows (via WSL2).

Docker and composer have to be installed to run the project.

Introduction

Laravel Sail will create 4 Docker images.

  • The PHP project,
  • a MySQL instance (database),
  • a meilisearch instance (to enable fuzzy search)
  • a mailpit instance (to preview emails sent by the application)

It is recommended to not have any services running on the ports 80 and 3306.

Installation

  1. Clone the repository to your local machine:
git clone https://github.com/artwork-software/artwork.git
  1. Access the project in the terminal and copy the .env.example file and rename it to .env
composer install --ignore-platform-reqs
  1. Now start the Docker container by running:
./vendor/bin/sail up

The images will start building. It is recommended to replace the ./vendor/bin/sail command with a shell alias. Consult the documentation to achieve that. We will use the alias sail for the following commands.

  1. Once the images are created you may have to open a new terminal window and install the frontend dependencies with a secret project key by running:
sail npm install
sail artisan key:generate
  1. To migrate the database with dummy data, use the following command:
sail artisan migrate:fresh --seed

To Delete your current database use this command:

sail artisan migrate:fresh

If you want to set up the database fresh for production without dummy data, use this command to fill the database with the necessary tables:

sail artisan db:seed:production
  1. Start the queue using:
sail artisan queue:work
  1. Start the frontend by running
sail npm run dev 
  1. Publish the app storage folder to display the artwork logo by running
sail artisan storage:link

The site should be running now under http://localhost 🚀

You can also visit your:

To connect to your application's MySQL database from your local machine, you may use a graphical database management application such as TablePlus. By default, the MySQL database is accessible at localhost port 3306 and the access credentials correspond to the values of your DB_USERNAME and DB_PASSWORD environment variables. Or, you may connect as the root user, which also utilizes the value of your DB_PASSWORD environment variable as its password.


If you have problems installing the project or find any other bugs please open a issue here.


To run various commands in the project, you can use the following instructions:

  • To run npm commands, use the following command:
sail npm <command>
  • To see all your changes to the code directly you can also run this command besides the ones from above:
sail npm run hot

For example, to install dependencies, you can run:

sail npm install
  • To run artisan commands, use the following command:
sail artisan <command>

For example, to generate a new migration file, you can run:

sail artisan make:migration create_users_table

Feel free to use these commands to interact with the project and execute the necessary tasks efficiently.


Branch Structure

  • dev Branch: This is where developers test their building blocks. It serves as the primary development branch for integrating new features and experiments.

  • staging Branch: This branch acts as the test server environment and can be considered as the Beta version. It is used for pre-release testing to ensure stability before deployment to production.

  • main Branch: This is our stable branch and should serve as the basis for all production systems. It contains the most reliable and tested version of our code.


Test Instance

If you use the docker installation and filled the database with dummy data you can use the following credentials to login to the test instance:

For the admin account (with all permissions): Mail: anna.musterfrau@artwork.software Password: TestPass1234!$

For the user account (with limited permissions): Mail: lisa.musterfrau@artwork.software Password: TestPass1234!$

a full documentation of all features will be released and found here, when we have finished developement of version 1.0

To be able to invite new Users you need to update the .env file with your mail credentials and the APP_URL

If you have questions, feel free to open an issue :)

Feel free to explore the features of Artwork and manage your projects effectively!