<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Quollix</title><link>https://quollix.org/docs/community/developer-guides/quallix/</link><description>Recent content on Quollix</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://quollix.org/docs/community/developer-guides/quallix/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://quollix.org/docs/community/developer-guides/quallix/frontend/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://quollix.org/docs/community/developer-guides/quallix/frontend/</guid><description>&lt;h2 id="frontend-development-workflow"&gt;Frontend Development Workflow&lt;/h2&gt;
&lt;h2 id="persistent-development-state"&gt;Persistent Development State&lt;/h2&gt;
&lt;p&gt;When starting Quollix in TEST mode, you can use the &lt;code&gt;-k&lt;/code&gt; flag which preserves database is preserved across restarts and preserves Login state, so you do not need to log in again after each backend code change and restart.&lt;/p&gt;
&lt;p&gt;Quollix uses SSR with Go HTML templates.&lt;/p&gt;
&lt;p&gt;When running in TEST mode:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Backend code changes still require a container restart&lt;/li&gt;
&lt;li&gt;Frontend resource changes &lt;strong&gt;do not require a restart&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Instead, the GUI provides a &lt;strong&gt;Reload Frontend&lt;/strong&gt; button:&lt;/p&gt;</description></item><item><title>Architecture</title><link>https://quollix.org/docs/community/developer-guides/quallix/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://quollix.org/docs/community/developer-guides/quallix/architecture/</guid><description>&lt;p&gt;Quollix is a monolithic application that runs on a single server. Each HTTP request from users is either processed by Quollix directly or passes through Quollix and is proxied to an app. The apps are &amp;ldquo;hidden&amp;rdquo; behind Quollix. This way, Quollix serves as an extra layer of security, as only authenticated users have access to the apps by default.&lt;/p&gt;
&lt;img src="https://quollix.org/images/quollix-architecture.png" alt="Flow Diagram" width="500"&gt;
&lt;p&gt;For security reasons, each app runs in its own isolated space with its unique Docker network and volumes. So, apps are isolated from each other.&lt;/p&gt;</description></item><item><title>Local Development</title><link>https://quollix.org/docs/community/developer-guides/quallix/local-development/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://quollix.org/docs/community/developer-guides/quallix/local-development/</guid><description>&lt;p&gt;For local development, you should run Quollix in TEST mode docker container using the &lt;code&gt;ci-runner&lt;/code&gt; tool. This mode is optimized for development and testing, so there are some features implemented which make the development experience smoother. This includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;when running docker container in test mode, you can add the flag &lt;code&gt;-k&lt;/code&gt; to keep the database and uploaded files between restarts. This way, you don&amp;rsquo;t have to login or set up everything from scratch on each change of backend code and subsequent restart.&lt;/li&gt;
&lt;li&gt;Changing web resource files (HTML, CSS, JS) on the host system can be reloaded from the GUI, so no restart is necessary.&lt;/li&gt;
&lt;li&gt;a dummy SSH server is started to allow SSH connections and creating backups.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;test-apps&lt;/code&gt; can be loaded dynamically into Quollix’s local test environment, allowing developers to modify docker-compose.yml files and immediately validate their integration with Quollix features such as network accessibility and OIDC.&lt;/li&gt;
&lt;li&gt;Usually when working with test apps, you might need a valid TLS certificate for testing integration with Quollix as an OIDC provider.
&lt;ul&gt;
&lt;li&gt;Set the domain in the /etc/hosts file to point to localhost (e.g. &lt;code&gt;quollix.test.quollix.org&lt;/code&gt; -&amp;gt; 127.0.0.1), do this also with all expected app domains.&lt;/li&gt;
&lt;li&gt;Run Quollix in prod mode&lt;/li&gt;
&lt;li&gt;Set a test domain in the settings that you own (e.g. we usually use &lt;code&gt;test.quollix.org&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Generate a TLS certificate via DNS-01 challenge&lt;/li&gt;
&lt;li&gt;Download the generated certificate (&lt;code&gt;certificate.pem&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Stop Quollix and restart it in TEST mode&lt;/li&gt;
&lt;li&gt;Set the host again and upload the previously downloaded certificate&lt;/li&gt;
&lt;li&gt;Restart your browser and revisit Quollix under &lt;code&gt;quollix.&amp;lt;test-domain&amp;gt;&lt;/code&gt; (for example &lt;code&gt;quollix.test.quollix.org&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For local development, Quollix should usually be run in &lt;strong&gt;TEST mode&lt;/strong&gt; inside a Docker container using the &lt;code&gt;ci-runner&lt;/code&gt; tool. TEST mode provides features optimizing development.&lt;/p&gt;</description></item><item><title>OIDC Integration Testing Strategy</title><link>https://quollix.org/docs/community/developer-guides/quallix/oidc-testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://quollix.org/docs/community/developer-guides/quallix/oidc-testing/</guid><description>&lt;p&gt;This article describes the recommended strategy for testing OIDC integrations in a local development setup between apps and Quollix.&lt;/p&gt;
&lt;h2 id="theory"&gt;Theory&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Quollix acts as the OIDC provider. Apps act as OIDC clients.&lt;/li&gt;
&lt;li&gt;Apps started by Quollix resolve the OIDC provider via the domain &lt;code&gt;quollix.&amp;lt;host&amp;gt;&lt;/code&gt; inside the shared Docker network.&lt;/li&gt;
&lt;li&gt;Many OIDC clients require the provider’s endpoints to be served over HTTPS with a valid TLS certificate.&lt;/li&gt;
&lt;li&gt;Quollix’s well-known endpoint is available at &lt;code&gt;quollix.&amp;lt;host&amp;gt;/.well-known/openid-configuration&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;While some apps may allow self-signed certificates, using a valid certificate is the safest option and avoids the need to relax or disable client-side TLS verification.&lt;/li&gt;
&lt;li&gt;Quollix can automatically generate and manage certificates for a test domain, making it easy to reproduce a production-like setup locally.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="test-apps"&gt;Test Apps&lt;/h2&gt;
&lt;p&gt;For integration testing, apps are provided as Docker Compose YAML files located in the test-apps folder on the host system. When Quollix is running in TEST mode, these apps are loaded into an App Store mock so that they can be installed as if from a real App Store. This enables local development and testing of app integrations before publishing them to the real App Store.&lt;/p&gt;</description></item></channel></rss>