Reddit 1.0

July 10, 2025 ยท View on GitHub

This version is an easier version to develop using docker.

screenshot

Quickstart

create docker network and base image.

make setup

startup swank server and db, sendmail, etc...

make dev.up

connect swank by using emacs

(slime-connect "localhost" 4005)

load reddit

(ql:quickload :reddit)

migration (require once)

;; connect to database
(reddit.config:set-docker-config)
(reddit.main::connect-database)

;; load migration code
(ql:quickload :reddit-db)

;; migration
(reddit.db.migration:up)

;; disconnect database
(reddit.main::disconnect-database)

start up reddit application

(reddit:startup-reddit)

open http://localhost:8080/

for shutting down

(reddit:shutdown-reddit)

shutting down develop server

make dev.down

for test

startup test server

make test.up

run tests

make test.run

shutdown test server

make tet.down

hint

configuration

Variables such as database user name can be overridden by environment variables.

environmenttypenamevalueenvironment vriable
dockerdatabaseserverdbREDDIT_DATABASE_SERVER
port5432REDDIT_DATABASE_PORT
databaseredditREDDIT_DATABASE_DATABASE
usernamepgsqlREDDIT_DATABASE_USERNAME
passwordpgcwip42:REDDIT_DATABASE_PASSWORD
memcachedservermemcachedREDDIT_MEMCACHED_SERVER
port11211REDDIT_MEMCACHED_PORT
mailservermailREDDIT_MAIL_SERVER
port25REDDIT_MAIL_PORT
usernameusernameREDDIT_MAIL_USERNAME
passwordpasswordREDDIT_MAIL_PASSWORD
loggerlogger-namestdout
developmentdatabaseserver127.0.0.1REDDIT_DATABASE_SERVER
port5432REDDIT_DATABASE_PORT
databaseredditREDDIT_DATABASE_DATABASE
usernamepgsqlREDDIT_DATABASE_USERNAME
passwordpgcwip42:REDDIT_DATABASE_PASSWORD
memcachedserver127.0.0.1REDDIT_MEMCACHED_SERVER
port11211REDDIT_MEMCACHED_PORT
mailserver127.0.0.1REDDIT_MAIL_SERVER
port25REDDIT_MAIL_PORT
usernameusernameREDDIT_MAIL_USERNAME
passwordpasswordREDDIT_MAIL_PASSWORD
loggerlogger-namestdout
testdatabaseserverdbREDDIT_DATABASE_SERVER
port5432REDDIT_DATABASE_PORT
databasereddit_testREDDIT_DATABASE_DATABASE
usernamepgsqlREDDIT_DATABASE_USERNAME
passwordpgcwip42:REDDIT_DATABASE_PASSWORD
memcachedservermemcachedREDDIT_MEMCACHED_SERVER
port11211REDDIT_MEMCACHED_PORT
mailservermailREDDIT_MAIL_SERVER
port25REDDIT_MAIL_PORT
usernameusernameREDDIT_MAIL_USERNAME
passwordpasswordREDDIT_MAIL_PASSWORD
loggerlogger-namestdout

it's defined on src/config.lisp

routing

it's defined on src/main.lisp at initialize-dispatch-table.

mail server

To read email, open 'http://localhost:8025' .

  • username: username
  • password: password

To regenerate password, run this

docker-compse -f script/docker/sendmail.dev.yml run mailserver bcrypt newpassword

and read it.

https://github.com/mailhog/MailHog/blob/master/docs/Auth.md

for Production ...?

(help...)

setup movie

setting up

make setup

startup reddit server

startup reddit server

...


  • original Copyright 2018 Reddit, Inc.
  • refactored Copyright 2018-2025 tamura shingo