🟢 Collaborate or ask for help
•
🌐 Visit Homepage
## Introduction
PolarPress Pagebuilder is part of the PolarPress content management system developed by Arctic Software A/S. We've decided to publish this as a seperate package in order to open up the possibility for our end users and customers to customize and tailor their own design, functionality and layout for their webpages running our CMS software. You can download this package either as a standalone zip/tar.gz compressed file or through git and run the PageBuilder on your local machine in a development environment to make, improve, and test various page components and design ideas for your website.
As of 06.05.2025, this package comes bundled with a few page blocks/components to give you an idea how to make new ones. These components are based on the design of the [Østfold Milsim](https://ostfoldmilsim.no) website. There is also a [Test ØMS website](https://test.ostfoldmilsim.no) populated with test data, if you want to test the page builder in the full CMS proper. Keep on reading if you want to gain elevated privileges there to test out things.
## Features
* Full WYSIWYG drag and drop page builder
* No limitation on what you can edit, as long as the block author have made provisions to edit what is intended to edit
* Pluggable and modular design that lets you also fetch external data from the CMS through Eloquent
## Installation
Here is a step by step guide to install this software package and get a development environment running on your own machine
### Requirements
Before you download this software package, make sure you have the following requirements installed. This software works on most operating systems (Windows, Linux, MacOS), as long as you have the other software requirements installed.
1. [PHP](https://php.net) Version >= 8.2
2. [Composer](https://getcomposer.org/), a dependency and package manager for PHP
3. [Node and NPM](https://nodejs.org/en) Node is a runtime environment for Javascript, and NPM is a dependency and package manager for Node
4. [Git](https://git-scm.com) Version control software. Not required, but recommended if you want to contribute and upload page components and designs to this repository
### Installation & Configuration steps
Once you have installed and correctly configured all of these requirements (check that each software tool is accessible via path from your command line), you can download the Page Builder either as a compressed file or using git (from the command line):
```
git clone https://git.arcticsoftware.no/arcticsoftware/polarpress-pagebuilder.git
```
Change into the directory
```
cd polarpress-pagebuilder
```
and copy/rename the `.env.example` to `.env`
This is the global environment variable file which contains all the settings needed to run the application. You do not need to edit this file, the default settings are fine. As standard, the page builder uses SQLite as a database backend (and that is fine for most intended purposes of this application), but if you want to use something like Mysql or PostresDB, you need to edit the environment variable file to facilitate this.
Next you need to generate a random key for cryptography operations (that will be stored in the .env file):
```
php artisan key:generate
```
If you get something like *"'php' is not recognized as an internal or external command, operable program or batch file."* you need to make sure that php is installed per the requirements, and that the operating system has the php executable accesible from within it's path environment variable. You might need to open and close your console to reload the environment path variable.
Next we want to update and fetch all package dependencies for PHP and Node with Composer and NPM:
```
composer update
npm update
```
Next we generate the neccessary database tables in the database with the migration command:
```
php artisan migrate
```
And that's it!
### Running local development server
Make sure you're inside the directory where you downloaded/cloned *polarpress-pagebuilder*, and run the following commands:
```
php artisan serve
npm run dev
```
These commands needs to be run concurrently (in two seperate terminals). Go to http://localhost:8000 and you should be greeted with the welcome screen.
### Serving images to the application
We haven't ported our the image handling, uploading and administration interface over from the CMS, so if you want to serve images to the application (that lets you pick and choose images you can use in the components), you need to use the `pagebuilder:make-imagedb` artisan command from the command line to generate the database file system representation. Place the file/folder structure of your images inside the folder `public/imagedb` and run the command:
```
php artisan pagebuilder:make-imagedb
```
And the images will become available for use inside the application.
## FAQ
**Q:** *Why isn't this software released as a composer package? Will it ever be?*
**A:** In order to get this ported and made available as fast as possible, we opted to port this from our Laravel 10 based CMS to Laravel 12, for now. If we had opted to make this into a composer package a lot more time would have to be spent coding the frontend for every possible Laravel scaffolding environment (Vue, React, Livewire) and the testing for each of those. We **will** release this as a composer package in the future, though.
## Testing
Unit and Feature tests with PHPUnit are stored under `tests` and can be run with
```
php artisan test
```
Unit and Featire tests with vite test are stored under `resources/js/__tests__` and can be run with
```
npx vitest run
```
See the wiki/documentation for more information on how to make use of the test suites for development
## Contributing
If you want to contribute by making new content blocks and functionality for either the PageBuilder itself or your organization's website, please join and collaborate on our [Matrix Chat](https://chat.zuul.no), and we will get you up and running with an account on this repository. Also, please take some time to read our [documentation](https://git.arcticsoftware.no/arcticsoftware/polarpress-pagebuilder/wiki) if you are considering contributing to the project.
## License
This software, and the pagebuilder is copyrighted by Arctic Software A/S and Helge-Mikael Nordgård, licensed and opensourced under the GNU GPL V3 license. See **"LICENSE"** for more information.
## Credits
**Maintainer:** Helge-Mikael Nordgård