A Play-Scala-PostgreSQL-Slick stack for web applications. Created by CodeWorth.io and the Play Framework community.
PSPS is a seed project for web applications that have user accounts, a public side, and require database connectivity (a very common type indeed). It is targeted at small-to-medium sites, that can use a single main part ("monolith"). In other words, if you need a microservice-based cloud native hyper-distributed app, that’s not it. If you need a website that can be hosted on a VPS, have a public and a back-office parts, and scale up nicely, PSPS is a good start.
PSPS is based on our experience with Play for creating web applications. Some of these sites handle thousands of visitors each month, sitting on a $4/month VPS (from digitalFyre, BTW). It works for us (and on our machines!), we hope the play community will find it useful too.
💡
|
Before going to production, reduce leaked system information by preventing httpd from sending detailed system info in the headers. See here.
|
💡
|
Close tcp port 9000 for the outside world, and allow access only via the local Apache: |
$ sudo iptables -A INPUT -p tcp -s localhost --dport 9000 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 9000 -j DROP
-
↗️ Updated Play to 2.8.8, sbt 1.5.4, tether 1.4.7, and Bootstrap 5. -
↗️ Improve RTL support. -
↗️ 🎉 Added SVG icons library, based on Bootstrap Icons. -
↗️ Updated date/time formatting library. -
↗️ Added JS escaping inviews.Helpers
. Fixes an issue with informational messages that has quotes. -
↗️ 🎉 Added a set of components to make building forms much easier. These live inviews.comps.bform._
. -
↗️ Addedviews.comps.bform.sortingTH
, a table header with a sorting triangle and a proper link behavior. -
↗️ Added an editable JS list, useful for controlled vocabularies, such as a closed list of items. -
↗️ 🎉 🎉 User roles! Also, first generated user is an admin. -
↗️ Invitation improvements: email auto-fill -
🐛 cleaned warnings
-
🌀 Some minor fixes and refinements
-
🎉 Added
JsonApiHelper.scala
, a controller helper mix-in that adds useful JSON-related controller methods.
-
↗️ Updated Play to 2.8.7. -
↗️ Updated libraries to be compatible with 2.8.x -
↗️ Filters updated -
↗️ Sticky footer: on screen bottom when there’s not enough space to fill the screen, or at the bottom of the content when the page is higher than the screen. -
🐛 0 warning-ness achieved.
-
↗️ Fixed layout issues with the Page Title Row component. -
🎉 Bootstrap 5! (beta-1, but Bootstrap5 nonetheless)
-
↗️ Floating labels at the login page. -
🐛 Various improvements to the site structure.
-
↗️ Improved signup screen - no "change password" tab. -
↗️ Support for ES6. Existing code upgraded. -
↗️ Stylesheet pre-processor changed from LESS to SASS.
-
↗️ Targeting JDK11 (current Java LTS, also supported by GraalVM 20) -
↗️ Slick configuration moved toprofile
(from the deprecateddriver
).