[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