...because email is not the solution
Stevedore -- DocWorker for the heavy lifting
A - Concepts
The Stevedore source code repository is on LaunchPad in the Stevedore Project.
A.1 - Server Application
The Stevedore server software monitors and handles document workflow as requested by the users.
The server software runs with user id stevedore and group id, steve_group_server.
A.2 - Executable and Data Files and Directories
Stevedore executable and data files reside on the server system yourserver.
- Executable files - The Stevedore application files reside under the user stevedore's home directory
- Site Configuration (Data) - The Stevedore site specific configuration file is also under the user stevedore's home directory
- Document Tree (Data) - The site documents are stored in the Stevedore document tree under the directory:
/home/groupshares/stevedore/
- Client MyStevedore directory (Data) - The clients' working copy of documents reside under each users' home directory under the sub-directory
/home/someusername/MyStevedore/
Client application add-on files are not stored on the server system.
They are described in "C - Client Deployment Instructions" section below.
A.3 - Directory and File Attributes
- Server application is installed under user stevedore's home directory:
- Server directory: yourserver/home/stevedore/
- No client mapping.
- No client references.
- Owner: stevedore
- Group: everyone
- Server application site configuration file is under user stevedore's home directory:
- File: yourserver/home/stevedore/steve_CURRENT/steve_site_config.pl
- No client mapping.
- No client references.
- Owner: stevedore
- Group: everyone
- The document tree data files are located in a SambaShare:
- Server directory: yourserver /home/groupshares/stevedore/
- On clients' machines the live branch, S:, is mapped to \\stevedore\SteveTrunks\seveLive\.
- Client machines reference only the live branch using: S:
- Owner: stevedore
- Group: steve_group_server
- MyStevedore directories are located under each users' home SambaShare:
- Server directory: yourserver /home/someuser/MyStevedore
- On clients' machines H: is mapped to \\someuser\
- Clients' machines reference using: H:\MyStevedore\
- Owner: someusername
- Group: steve_group_server
B - Common Server Deployment Instructions
B.1 - User and Group
- Create group steve_group_server
- Create user stevedore with primary group steve_group_server
B.2 - Samba Shares
- Create Samba share stevedore
- Map Samba share stevedore to /home/groupshares/stevedore
B.3 - Email Handling
In order to authenticate to the server over a secure connection to send mail from the scripts:
- Install msmtp
- Direct mail commands to use msmtp rather than the default for sending email:
ssh stevedore@yourdomain.net
cat >.mailrc <<EOF
set sendmail="/usr/bin/msmtp"
EOF
chmod o-rw .mailrc
cat >.msmtprc <<EOF
host secure.yourdomain.net
tls on
tls_certcheck off
auth on
user stevedore
password mYpaSSw0rD
from stevedore@yourdomain.net
EOF
chmod o-rw .msmtprc
B.4 - Common Email Lists
- Put User stevedore in group lists as needed to grant access to mailing lists.
- Mailing list naming convention: Steve + <Command>orALL + <Department>orALL + SorF
- Create lists:
- Steve_ALL_ALL_F
- Steve_ALL_ALL_S
- Steve_CheckInToPublish_ALL_F
- Steve_CheckInToPublish_ALL_S
- Steve_CheckOut_ALL_F
- Steve_CheckOut_ALL_S
B.5 - Download and Install Stevedore Server Scripts
- Download executable files and default configuration file:
ssh stevedore@yourdomain.net
rm -r ~/exp_lp_stevedore
mkdir ~/exp_lp_stevedore
bzr export --format=dir ~/exp_lp_stevedore/ lp:stevedore
cp ~/exp_lp_stevedore/src/server/* ~/steve_CURRENT
-
On first install copy ~/steve_CURRENT/steve_site_config_default.pl to ~/steve_CURRENT/steve_site_config.pl.
Edit the steve_site_config.pl file changing yourdomain.net as needed:
$STEVE_SITE_CONFIG_EMAIL_DOMAIN = "yourdomain.net";
Directory ~/exp_lp_stevedore is created as a work-around because of a
bug in bzr export.
B.6 - Invoke Stevedore Server
- Invoke the first time:
ssh stevedore@yourdomain.net
cd ~/steve_CURRENT/
./steved.pl /home/groupshares/stevedore /home >>/home/stevedore/steve_CURRENT/steve_log.txt &
disown
- Then automagicly on reboots:
crontab -e
@reboot cd /home/stevedore/steve_CURRENT; ./steved.pl /home/groupshares/stevedore /home >>/home/stevedore/steve_CURRENT/steve_log.txt &
B.7 - Create Stevedore Users
- Future users can be handled automagicly by the system by doing this once:
ssh stevedore@yourdomain.net
sudo cat >>/usr/local/sbin/adduser.local <<EOF
username=${1}
/home/stevedore/steve_CURRENT/steve_user_add.pl ${username}
EOF
- For each of the already existing users:
ssh stevedore@yourdomain.net
cd ~/steve_CURRENT/
sudo ./steve_user_add.pl someusername
B.8 - Mapped Drive Letters
- Confirm that drive letter H: is mapped to \\someusername\ for each user
- Map drive letter S: to \\stevedore\SteveTrunks\steveLive\
for each user on login to Samba:
ssh stevedore@yourdomain.net
sudo cat >>/var/lib/samba/netlogon/logon.bat <<EOF
net use s: \\samba\stevedore\SteveTrunks\steveLive
EOF
B.9 - Desktop Icons
- Copy Stevedore icons to the Samba Default User Desktop directory. Then copy them to the existing user's Samba profiles:
ssh stevedore@yourdomain.net
cp ~/exp_lp_stevedore/src/client/dektop-ms/* '/var/lib/samba/netlogon/Default User/Desktop/'
sudo find /var/lib/samba/profiles/ -maxdepth 1 -type d | while read user; do mkdir $user/Desktop; cp '/var/lib/samba/netlogon/Default User/Desktop/*' $user/Desktop/;done
- --Add desktop icons to steve_user_add.pl--
C - Client Deployment Instructions
C.1 - Stevedore Firefox Add-on
- Install the Firefox Stevedore Add-on on each PC with Firefox
C.2 - Stevedore OpenOffice Add-on
- Install the OpenOffice Stevedore Add-on on each PC with OpenOffice
C.3 - Web Browser Configuration
When your Site-Specific Document Tree uses links above the current page . E.G. ../includes/nav.html Firefox and Google Chrome will not work.
You can modify this behaviour by changing the browser default security settings as described below.
For background on this issue see the answer to: "Why does jQuery.get('/home/user/0/0a.html') fail when using file: rather than http:?"
and the answer to: "jquery-include example that works with Firefox does not work with Chrome."
C.3.1 - Firefox
- Invoke Firefox
- Enter about:config in the address bar, then change the value from true to false for security.fileuri.strict_origin_policy which will grant access to files based upon the local file system access controls.
C.3.2 - Google Chrome
- Invoke Chrome with additional option or edit the invocation command in the icon/short-cut properties command:
- chrome.exe --allow-file-access-from-files
D - Site-Specific Document Tree Deployment Instructions
By way of example this site has national Divisions which contain Departments.
International groups are called Teams.
These are the class names in the document tree paths.
The corresponding email lists use the shortened terms: Div, Team and
Dept.
D.1 - Site Specific Email Lists
- Create lists:
- Steve_CheckInToPublish_Div_us_Dept_order_S
- Steve_CheckInToPublish_Team_is_F
D.2 - Create Site Document Tree
- Create the beginnings of the site document tree, nodes and empty documents:
ssh stevedore@yourdomain.net
cd steve_CURRENT
apps=/home/stevedore/steve_CURRENT
root=/home/groupshares/stevedore
$apps/steve_tree_create.pl $root
$apps/steve_tree_add_leaf_document.pl $root "" "corp_index.htm"
$apps/steve_tree_add_node.pl $root "" Divisions
$apps/steve_tree_add_node.pl $root Divisions us
$apps/steve_tree_add_leaf_document.pl $root Divisions/us "us_index.htm"
$apps/steve_tree_add_leaf_document.pl $root Divisions/us "us_org_chart.odt"
$apps/steve_tree_add_node.pl $root Divisions/us Departments
$apps/steve_tree_add_node.pl $root Divisions/us/Departments admin 'Div_us_Dept'
stevedore_product_deployment_notes.html 4-Mar-2011 C.W.Holeman II
Webmaster