[hunchentoot-devel] Managing Deployment of Lisp Web Apps?

Austin Haas austin at pettomato.com
Wed May 9 19:28:08 UTC 2007


I've been using darcs to "push" the new files to the server. Then I ssh to the server and make a new core image, with a script like this (sbcl):

(asdf:oos 'asdf:load-op 'swank)
(asdf:oos 'asdf:load-op :pettomato)

(defun my-toplevel()
  ;; start swank
	(setf swank:*use-dedicated-output-stream* nil)
	(setf swank:*communication-style* :fd-handler)
  (swank:create-server :dont-close t)

	;; start hunchentoot
	(pettomato:start)

  ;; start a repl
  (sb-impl::toplevel-repl nil))

(sb-ext:save-lisp-and-die "pettomato.core" :toplevel #'my-toplevel)

"pettomato" is the name of my website package.

Then I kill the previously running image, and start a new one running in a screen session with this script:

#!/bin/sh
screen -dmS pettomato-site sbcl --core /home/astro/bin/pettomato.core --noinform

The main reason that I do it this way is because I have init scripts that launch the above script at boot time. This way it will be up-to-date and load quickly if the server reboots.

I don't update the production server very often, so this works well for me. If anyone sees any flaws with this logic, please let me know.

-austin

-- 
Austin Haas
Pet Tomato, Inc.
http://pettomato.com

On Tue May 08 21:52 , Mac Chan wrote:
> > I'm used to working in the LAMP environment where it's just copying the
> > needed files
> 
>  You can still copy the files over. However, I prefer to use source
>  control to sync up the files instead of using scp/ftp, etc.
> 
> > and I've been doing the same thing in the same fashion -
> > except instead of files it's functions being transfered via swank...
> 
>  Assuming that you are using asdf for your project, you can just type
>  ,load-system in slime REPL to reload your modified files.
> 
>  I usually have gnu screen running and dedicate one terminal for my
>  lisp's REPL (not slime).
> 
>  When I need slime (for debugging), I just type (swank:CREATE-SERVER)
>  and then I can connect from emacs.
> 
>  HTH,
>  -- Mac
>  _______________________________________________
>  tbnl-devel site list
>  tbnl-devel at common-lisp.net
>  http://common-lisp.net/mailman/listinfo/tbnl-devel
> 



More information about the Tbnl-devel mailing list