Repository navigation
v0.11.0
-
Postgres 18.
init --postgres latestnow generates Postgres 18,
with its volume at/var/lib/postgresql, where the image keeps a
directory per version. The backend image installs the Postgres client
from the PostgreSQL apt repository at the bundled server's major version
(ARG POSTGRES_VERSIONinbackend/Dockerfile), so backups work with
either.configrefuses another Postgres version; the backups docs
show how to upgrade with a backup and a restore. -
Headless projects.
init --frontend headless(and--preset api)
now generates a project with the content API and the admin only: no
frontend/and no frontend service. Django serves the whole domain, in
development onSITE_PORT, with a start page at/that links to the
admin and the API schema (django_stack.start). Page analytics is
off,REVALIDATE_URLis empty until you set your frontend's, and
dstack typeswrites onlybackend/openapi.json.dstack check,
doctor,devandupdateskip the frontend when there is none. The
templates' text files can now hold# @if frontend/# @endblocks. -
Fixed: with page analytics off, the backend did not start with Django
Content Studio 1.12, whose checkcontent_studio.E037refuses the
Analyticscomponents of the page and post studios without an
AnalyticsExtension.content/admin.pynow adds them only when Umami is
configured. In an existing project with analytics off, make the same
change. -
A local Postgres with an external database.
init --database-url
now saves the URL asPRODUCTION_DATABASE_URLand keeps the bundled
Postgres for development, so local work never writes to the server's
database.dstack productionmakes itDATABASE_URLin
.env.productionand leaves outdb;dstack runkeeps the bundled
one.initalso asks for the external server's Postgres version, for the
local Postgres and the backups' client. Existing projects with
DATABASE_URLset to an external Postgres keep working as before. -
django_stack.contrib.site, for a site Django renders with
templates (the coming--frontend templates): the/previewand
/preview/exitroutes with a preview cookie,published(queryset, request)with the same rules as the content API, the@site_page
decorator (a page cache in Django's cache, emptied when content in the
CONTENT_APPSor the media library changes, and the site's
Content-Security-Policy),RedirectMiddlewarefor editor-managed
redirects, a context processor, and the{% blocks %},{% image %},
{% seo %},link_hrefandis_currenttemplate tags./_a/script.js
and/_a/api/sendpass Umami's tracker and page views through where no
reverse proxy does, as in development.
django_stack.contrib.captcha.forms.CaptchaFieldadds the captcha to a
Django form, with the@cap.js/widget0.1.58 script vendored as a
static file. -
Django templates.
init --frontend templatesnow generates a
project where Django renders the site: awebsiteapp in
backend/website/with the pages, the blog, categories, tags, the RSS
feed, the sitemap,robots.txtand the contact form of the Astro
starter, with its stylesheet, and tests of every page. There is no
frontend service and no Node; the pages read the content with the ORM
anddjango_stack.contrib.site. Caddy sends every request but/media
and/_a/to the backend. The templates intemplates/can now also
hold@if headless,@if templatesand@if siteblocks.