Forum OpenACS Q&A: Giving a subsite or edit-this-page directory to each registered user

Could someone point me toward some documentation? I have set up OpenACS 5.0 for a family website. I want to give each family member either a subsite or an edit-this-page instance to do with as they wish.
The things I've tried
1) create a subsite, mount edit-this-page; now how do I set the subsite so the subsite "owner" can edit their homepage? I cannot find a filesystem directory in which to do the ln -s ...
2) mount edit-this-page in the mainsite, add folder of type Edit This Page for each member. Now setting the permissions on anyone of these sets it for all the others.
3) mount edit-this-page once for each member. Now each instance has a "placeholder" message without an Edit This Page link.
When you create a subsite "foo", the request processor first looks for an index file in /var/lib/aolserver/service0/www/foo. If it doesn't find one, then it serves up the default acs-subsite inteface - ie, from /var/lib/aolserver/service0/packages/acs-subsite/www. That's fact 1.

Fact 2 is that you can make Edit-this-page the default interface for any subsite with these instructions. I think there's a good chance that you can combine facts 1 and 2:

  1. make a new subsite foo
  2. make a subdirectory ..../www/foo
  3. ln -s /var/lib/aolserver/service0/packages/acs-subsite/www/index.vuh /var/lib/aolserver/service0/foo/
Okay. I successfully did it. It appears that the important thing is that the ln -s be an absolute path so:
a. create a subsite 'foo' using the admin interface
b. login to the server and mkdir /var/lib/aolserver/service0/www/foo
cd /var/lib/aolserver/service0/www/foo
ln -s /var/lib/aolserver/service0/packages/edit-this-page/www/index.vuh .

I'm assuming that is what Joel meant to say since acs-subsite does not have an index.vuh

Spoke to soon...
The first one worked. Now the second one gives:
Database operation "0or1row" failed (exception NSDB, "Query was not a statement returning rows.")

ERROR:  Cannot insert a duplicate key into unique index cr_items_unique_name

SQL:
select content_folder__new('kim', 'Kim', '', coalesce(etp__get_folder_id('403'), NULL));

    while executing
"ns_pg_bind 0or1row nsdb0 {
select content_folder__new(:name, :title, '', coalesce(etp__get_folder_id(:parent_package_id), NULL));
}"
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_pg_bind $type $db $sql"
    ("postgresql" arm line 2)
    invoked from within
"switch $driverkey {
                oracle {
                    return [uplevel $ulevel [list ns_ora $type $db $sql] $args]
                }
      ..."
    invoked from within
"db_exec 0or1row $db $full_statement_name $sql"
    invoked from within
"if {[regexp -nocase -- {^\s*select} $test_sql match]} {
                ns_log Debug "PLPGSQL: bypassed anon function"
                set selection [..."
    ("uplevel" body line 6)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle -dbn $dbn db {
            # plsql calls that are simple selects bypass the plpgsql
            # mechanism for creating anonymous fun..."
    (procedure "db_exec_plsql" line 57)
    invoked from within
"db_exec_plsql create_folder """
    invoked from within
"set folder_id [db_exec_plsql create_folder ""]"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 1)
    invoked from within
"db_transaction {
    set folder_id [db_exec_plsql create_folder ""]
    db_exec_plsql register_types ""
    db_exec_plsql register_folders ""
    db_dml set_folde..."
    invoked from within
"if { $site_node_url == "/" } {
    # -100 is the magic number for the "root folder".
    set folder_id -100
    db_transaction {
    db_dml set_folder_pa..."
    ("uplevel" body line 22)
    invoked from within
"uplevel {
          # /packages/edit-this-page/www/etp-setup-2.tcl

ad_page_contract {
    @author Luke Pond (mailto:dlpond@pobox.com)
    @creation-date 2001-0..."
    (procedure "code::tcl::/var/lib/aolserver/openacs-4/packages/edit-this-p..." line 2)
    invoked from within
"code::tcl::$__adp_stub"
    invoked from within
"if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is up-to-date
      adp_init tcl $__adp_stub
..."
    ("uplevel" body line 3)
    invoked from within
"uplevel {

    if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is up-to-date
      adp_init t..."
    (procedure "adp_prepare" line 2)
    invoked from within
"adp_prepare "
    (procedure "template::adp_parse" line 30)
    invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
    (procedure "adp_parse_ad_conn_file" line 7)
    invoked from within
"$handler"
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
                $handler
            } ad_script_abort val {
                # do nothing
            }"
    invoked from within
"rp_serve_concrete_file [ad_conn file]"
    (procedure "rp_serve_abstract_file" line 60)
    invoked from within
"rp_serve_abstract_file $path"
    (procedure "rp_internal_redirect" line 26)
    invoked from within
"rp_internal_redirect $path"
    (file "/var/lib/aolserver/openacs-4/www/kim/index.vuh" line 50)
    invoked from within
"source [ad_conn file]"
    (procedure "rp_handle_tcl_request" line 3)
    invoked from within
"$handler"
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
                $handler
            } ad_script_abort val {
                # do nothing
            }"
    invoked from within
"rp_serve_concrete_file [ad_conn file]"
    (procedure "rp_serve_abstract_file" line 60)
    invoked from within
"rp_serve_abstract_file -noredirect -nodirectory  -extension_pattern ".vuh" "$root$prefix""
    ("uplevel" body line 3)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
      ad_conn -set path_info  [string range $path [expr [string length $prefix] - 1] end]
      rp_serve_abstract_file -noredirect -nodirectory  -e..."

It looks like I'm into one of the bugs of Edit-This-Page. I had tried to create this user as an added folder before creating it as a subsite.
I tried unmounting each of the applications in her subsite and then unmounting and deleting the subsite and got an error.
I then went to the mainsite sitemap and unmounted the site and deleted it. Then I restarted the server.
Next I created the subsite again, added the edit-this-page application, created /var/lib/aolserver/service0/www/kim,
linked to the edit-this-page index.vuh and got the same error message.

Is there some database table I can edit to fix this?