PSPS
A Play-Scala-PostgreSQL-Slick stack for web applications. Created by CodeWorth.io and the Play Framework community.
Overview
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
Change Log
2021-06
-
βοΈ 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
2021-02
-
π Some minor fixes and refinements
-
π Added
JsonApiHelper.scala
, a controller helper mix-in that adds useful JSON-related controller methods.
2021-01
-
βοΈ 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.
2020-08
-
βοΈ Targeting JDK11 (current Java LTS, also supported by GraalVM 20) -
βοΈ Slick configuration moved toprofile
(from the deprecateddriver
).
2019-10
-
π Fixed minor cosmetic issues with button classes
-
βοΈ Updated SBT to version 1.3.3. -
π Moved to Scala 2.13
-
π Refined the behavior of the prompt on the public index.
-
βοΈ Updated SBT to version 1.3.0.