Developer guide
Access control is about defining who is allowed to access certain resources. It takes two steps:
Automatic startup on system boot
Once you have Zotonic running, you want to make sure that it automatically starts up when the server reboots, so that…
Creating sites Media Best Practices Template Best Practices and Pitfalls
There are multiple ways to set up interaction between server-side Zotonic code and client-side JavaScript.
The Zotonic shell gives you access to a running Zotonic instance with its code and data.
We encourage contributions to Zotonic from the community! This chapter describes how you can help improve Zotonic.
Controllers are the Erlang modules which decide what happens when a browser requests a page. Zotonic looks at the…
Initialize your site with a proper data model and some resources through manage_schema .
So you have built your Zotonic site, and now you want to show it to the world. This page tells you how to configure…
The technical handbook for developers building websites with Zotonic. It guides you through all aspects of the…
Zotonic is a set of regular OTP applications. These can be found in the repository’s apps/ directory:
Dispatch rules route incoming requests to controllers.
We offer the Docker image zotonic/zotonic-dev which contains build tools and Erlang.
Get the latest release Download the latest release of Zotonic from Github. Use git clone, so that you can easily…
Any Zotonic system is capable of sending and receiving e-mail messages over SMTP.
You should validate all input data entered in forms. In Zotonic you create forms by writing plain HTML. You can attach…
You have three options for running Zotonic: to get started quickly, start our Zotonic container. You can also use Nix…
Zotonic has built-in support for HTTPS and TLS (previously SSL) certificate handling.
Including Zotonic icons CSS Add the CSS file to your template:
This is the Zotonic Developer Guide. It takes you through all aspects of Zotonic so you can start building your own…
Zotonic uses Logger for logging. Logger metadata is automatically set by Zotonic in the controller functions.
Resources can have media resources attached to them. Resources and their media (images, video and audio) are connected…
Use Media classes to define image properties.
Modules are the building blocks of Zotonic. They add functionality to your Zotonic website such as:
At different moments in the lifecycle of the web request, Zotonic sends notifications. By observing these notifications…
It is possible to put Zotonic behind the nginx <http://nginx.org/> web server, for example if you have other, non
Resources are Zotonic’s main data unit. You may want to familiarise yourself with the Zotonic data model in the User…
Running on Port 80 and Port 443
Using standard ports helps visitors discover your page and removes the awkward port number from URLs.
Using the query search API you can retrieve lists of resources in various ways. In your templates, you do so through…
This chapter describes how to configure your Linux server for running Zotonic.
Zotonic has the capability of serving more than one site at a time. You can have multiple sites enabled, each with its…
Template Best Practices and Pitfalls
This chapter lists some preferred solutions to common tasks and pitfalls you may encounter while developing with…
Templates are text files marked up using the Zotonic template language. Zotonic interprets that mark-up to dynamically…
It is possible to create end-to-end integration tests for Zotonic websites. Tests like these are called sitetests .
The Zotonic “status” site is the first thing you see once you have installed Zotonic, or if you do not have any sites…
Many sites need to support content and templates in multiple languages. Luckily, Zotonic is completely multilingual
Installation Zotonic won’t start and shows errors when running zotonic debug Check your site’s database configuration.
These notes list the most important changes between Zotonic versions. Please read these notes carefully when upgrading…
The following environment variables influence how Zotonic starts up.
Using Varnish as frontend for Zotonic
Using the Varnish HTTP frontend, you can speed up your Zotonic even more as this web server caches static files…
Wires are the older way to code actions and client/server interaction. It is now advised to use MQTT topics with…