text:
Ultimate Server Lucid with OpenVistA EHR
This walkthrough is for (K)Ubuntu Lucid 10.04 (32-bit or 64-bit) because the BigBlueButton teleconferencing server requires either Lucid 10.04 (32-bit or 64-bit) or Jaunty 9.04 (32-bit only).
The software updater may prompt you to upgrade the distribution to a newer release (e.g. to Maverick 10.10). This is not recommended because BigBlueButton may then stop functioning properly.
All variables that can be (and usually ought to be) changed are noted in italics. Do not attempt to use any italicized variable exactly as written; all of them are fictitious and will not work (especially for web services)! Create your own variable in place of the italicized one.
Furthermore, this website is viewed by over 20,000 users per month. Don't attempt to use any of the example passwords used here (that would be highly insecure). Create your own passwords.
Install the base OS (Ubuntu Server 10.04 Lucid)
- Shrink the Windows Partition. For Windows Vista and Windows 7 computers, use Perfect Disk Trial edition. See this tutorial.
- Partition the hard drive. Use this Multiple OS Installation scheme. The GParted utility can be found on the Ubuntu Desktop LiveCD (but not the Kubuntu Desktop LiveCD) or a GParted LiveCD can be downloaded and used directly.
- Onto another computer, download and burn Ubuntu Server Lucid 10.04. (See this tutorial for instructions on burning the CD.)
- Install Ubuntu Lucid Server (32-bit or 64-bit) into its own partition. If you followed the Multiple OS Installation scheme, then the Windows OS will be in partition 1 (and possibly 2, if you have a recovery partition), the /boot partition will be in partition 3, and partition 4 will be an extended partition. The extended partition ought to have been divided into a 2 Gb swap logical partition and 2 equally sized logical partitions for Linux (one for a production partition and one as a test/upgrade partition).
- For installation it is best if the computer is connected to the Internet by a wired ethernet connection.
- Hostname: Lucid64Server00
- Partitioning: Manual
- Choose the partition created for the new Lucid operating system (e.g. /dev/sda6). Use as: Ext4 journaling file system -> Format the partition: yes, format it -> Mount point: / - the root file system -> Done setting up the partition -> Finish partitioning and write changes to disk -> Write changes to disk?: Yes
- During the Ubuntu Server installation, install the LAMP server and OpenSSH servers and the PostgreSQL database. Record the system administrator ID/password and the MySQL root (superuser) password. Note the partition name and number (e.g. /dev/sda6).
- Full name for the new user: Lucidadmin00 -> Username for your account: lucidadmin00 -> Choose a password for the new user: lucidword00
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Note: You could also install the LAMP server stack, the OpenSSH server, or the PostgreSQL database at a later time using the menu-driven installation system:
sudo tasksel
- Encrypt your home directory: No (this is optional, but on this system the primary user's home directory is not used much so there is little need to encrypt it.)
- HTTP proxy information -- this is used if your organization has a firewall or other gateway to the outside Internet. A network administrator will have the information for this. Most small businesses will not have such a gateway and it can be left blank, in this case.
- How do you want to install updates...? No automatic updates
This is, of course, user preference. However, updates are sometimes sent out before they are completely tested with all hardware, which can cause problems with very new or very old hardware. Some systems can be brought to a halt by automatic updates, especially updates of the Linux kernel.
For this reason, complete manual control of updates is highly recommended (on production systems). In fact, many users routinely run two parallel systems (a test system and a production system) and install updates on the test system first (in order to make sure all updates work properly) prior to installing the updates on the production system. This practice is extremely important to ensuring stability on critical systems and servers.
- Choose software to install:
- LAMP server (ticked) -> OpenSSH server (ticked) -> PostgreSQL database
- New password for the MySQL "root" user: lucidsql00
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Install the GRUB boot loader to the master boot record? No -> Device for boot loader installation: /dev/sda6
- Note: this assumes a /boot partition and multiple partitions. Under the general scheme above, the first free partition will usually be /dev/sda6, but if you already have other OSs or other peculiarities, take extra care during this step.
- This is the trickiest step of the installation. It is important to set up the Master Boot Loader to recognize the new partition. Re-read the Multiple OS Installation tutorial very carefully and completely. In short, the bootloader needs to be copied to the /boot partition (usually /dev/sda3) and customized there so that it chainloads the bootloader installed locally in your new OS partition (e.g. /dev/sda6). Once this is set up correctly, reboot and the menu will allow booting into the new OS.
- Login for the first time.
Lucid64Server00: lucidadmin00 Password: lucidword00
- Shorten the boot time:
sudo nano /etc/default/grub
- Change the timeout value:
- (Note: Save the changes with CTRL-O then CTRL-X.)
- Then regenerate the Grub2 configuration file:
sudo grub-mkconfig --output=/boot/grub/grub.cfg
- Update the system.
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential dkms sudo reboot
- Older versions of (K)Ubuntu (Jaunty and earlier) also required:
sudo apt-get install linux-headers-$(uname -r) sudo reboot
Note: This step was also previously required after every kernel upgrade (as is done automatically if you have enabled automatic updates). If graphics aren't working for any reason, try making sure the headers are installed correctly and updating again.
- Install the password generator for use with the remainder of the installation.
sudo apt-get install pwgen
- Many users also generate a password for the root superuser at this time:
sudo passwd root
Add an Ubuntu desktop
- Install an Ubuntu desktop.
sudo apt-get install ubuntu-desktop
Note: The end user can also install the restricted extras:
sudo apt-get install ubuntu-restricted-extras
- Reboot the system:
sudo reboot
- Once the Ubuntu desktop has been installed, all commands can then be entered into the command-line terminal Terminal:
Menu -> System -> Terminal
- Note: Ubuntu Jaunty included an (automatic) kernel upgrade that at some point disabled the Nvidia graphics drivers (on computers with Nvidia graphics). If this happens for your system, the desktop will be unable to start at bootup and only the command-line will be presented. To correct this problem, merely install the linux-headers again:
sudo apt-get install linux-headers-$(uname -r) sudo reboot
- then the Nvidia graphics drivers should install correctly and the desktop will start normally.
Set networking parameters
- Set a static IP address for your server.
sudo gedit /etc/network/interfaces
- and edit the lines to resemble:
# iface eth0 inet dhcp # iface eth0 inet static address 192.168.0.99 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
- and restart networking:
sudo /etc/init.d/networking restart
Enable BIOS power-up
Power failures happen. It is possible to change the BIOS settings so that after a power failure the computer will automatically powerup and restart to the default OS (as set in the bootloader configuration). This is a critical function for servers. At bootup, enter the BIOS menu using whichevever key is appropriate for your computer's BIOS:
- [F2], [F1], [F10], or [DEL] -> Power Management Setup -> PowerOn After Pwr-Fail: On -> Save -> Reboot
Install Firefox
- Install Firefox:
sudo apt-get install firefox
- This can also be done from the Ubuntu desktop menu:
- Menu -> Internet -> Install Firefox Web Browser
- Start Firefox and install security add-ons:
- Firefox -> Tools -> Add-ons -> Get Add-ons -> NoScript -> Add to Firefox -> Install
- Firefox -> Tools -> Add-ons -> Get Add-ons -> AdBlock Plus -> Add to Firefox -> Install
- Add a menu item/shortcut to this guide (to enable copying and pasting of the remaining commands directly from the guide) and to the customization guide:
- Ubuntuguide (Ultimate Server Walkthrough) -- firefox http://ubuntuguide.org/wiki/Ultimate_Server_Lucid
- Ultimate Server Customization (Ubuntuguide) -- firefox http://ubuntuguide.org/wiki/Ubuntu_Server_Lucid_Customization_OV
Obtain an Internet URL
If a static Internet URL is not available, obtain a dynamic DNS URL. (This must be changed for each OS installation, as it is specific to that installation).
- Create an email account for administrative use with this server, such as at mail.com, mail.google.com, or mail.yahoo.com. (email@example.com / mylucidword000 / 1/1/01 / securityquestionanswer)
- Create a DynDNS account for use with this server, at DynDNS.org. (myluciddnsid / myluciddnsword / firstname.lastname@example.com)
In this walkthrough, several URLs are used. It is possible to create all of them at once at this stage:
- mylucid00.dyndns.org
- mylucidbbb00.dyndns.org
- mylucidwiki00.dyndns.org
- mylucidweb00.dyndns.org
- DynDNS allows 5 free URLs. After installation has been completed, I generally remove mylucidweb00.dyndns.org and create mylucidcalendar00.dyndns.org (for use with DAViCal) instead.
Adjust SSH for remote connections
- If the OpenSSH server was not installed on your server at initial installation, it can be installed now.
sudo tasksel install openssh-server
- The default SSH port is 22, but this may conflict with other SSH servers on your network. Change the SSH port to a custom port. Also disallow password-based logins, for now, to prevent unauthorized logins. See this tutorial.
sudo gedit /etc/ssh/sshd_config
- change the listening port:
Port 22199
- and disallow Password-based authentication by changing the line::
#PasswordAuthentication yes
- to
PasswordAuthentication no
- Make sure the OpenSSH server knows that it must look for the authorized_keys file. Uncomment the line:
#AuthorizedKeysFile %h/.ssh/authorized_keys
so that it resembles:
AuthorizedKeysFile %h/.ssh/authorized_keys
- then restart the OpenSSH server:
sudo /etc/init.d/ssh restart
- Make sure the router forwards the selected listening port (e.g. 22199) to the IP address (e.g. 192.168.0.99) of the server.
- Install X11VNC:
sudo apt-get install x11vnc
- Add an X11VNC Server menu item with the command:
x11vnc --forever
- -> Place in system tray (ticked)
- Create an SSH keypair for automated login:
- Generate a key pair (by default, a 2048-bit RSA key pair is created):
- Accept the default location for the key file ( /home/user/.ssh/id_rsa ).
- Leave the passphrase empty
- Make sure the directory /home/serveruser/.ssh exists; if not, create one using:
mkdir ~/.ssh
- (In this instance, user = serveruser = lucidadmin00, so the folder /home/lucidadmin00/.ssh ought to already exist).
Make sure that a file named authorized_keys (with write privileges) is in that folder. If not, create such a file (using the touch command to create an empty file) while logged into the server as serveruser (i.e. lucidadmin00):
cd ~/.ssh touch authorized_keys
- Concatenate the newly-generated id_rsa.pub key to the authorized_keys file:
cd ~/.ssh cat authorized_keys id_rsa.pub >> authorized_keys
- Create a test connection:
- Start the X11VNC Server (as above)
- Connect VNC through the SSH tunnel with the commands:
ssh -l lucidadmin00 -L 5900:127.0.0.1:5900 mylucid00.dyndns.org -p 22199 vinagre vnc://127.0.0.1
or with a single-line command (which can be placed in a Menu item / shortcut):
ssh -f -l lucidadmin00 -L 5900:127.0.0.1:5900 mylucid00.dyndns.org -p 22199 sleep 5; vinagre vnc://127.0.0.1
Note: vinagre -- fullscreen vnc://127.0.0.1 will start the VNC connection in fullscreen mode (but should only be used when connecting from other computers).
Install the BigBlueButton teleconferencing system
- Read this BigBlueButton tutorial. Also see this demo site.
- Create a BigBlueButton URL for use with your server, e.g. mylucidbbb00.dyndns.org
- DYNDns.com account -> Add Host Services -> ...
- Change the Apache listening port during BigBlueButton installation.
sudo gedit /etc/apache2/ports.conf
- Change the port value:
Listen 82
- Restart Apache 2:
sudo /etc/init.d/apache2 restart
- Make sure the Universe Repositories are enabled.
- Obtain and install the BigBlueButton teleconferencing server:
wget http://archive.bigbluebutton.org/bigbluebutton.asc sudo apt-key add bigbluebutton.asc echo "deb http://archive.bigbluebutton.org/lucid bigbluebutton-lucid main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list sudo apt-get update sudo apt-get install asterisk bigbluebutton
- During installation, enter the MySQL "root" user password when prompted: lucidsql00
sudo apt-get install bbb-apps-deskshare
- On the router, forward ports 81, 1935, 9123 to the LAN IP address of the BBB server (e.g. 192.168.0.99).
- Edit the Nginx webserver configuration file used for BigBlueButton:
sudo nano /etc/nginx/sites-available/bigbluebutton
- and change the listening port:
listen 81;
- Repeat for the default Nginx configuration file:
sudo nano /etc/nginx/sites-available/default
- and change the listening port:
listen 81;
- then restart Nginx:
sudo /etc/init.d/nginx restart
- Configure the other BBB server components to run on port 81. Use the URL (mylucidbbb00.dyndns.org) that was setup at DYNDns.org:
sudo bbb-conf --setip mylucidbbb00.dyndns.org:81 sudo bbb-conf --clean
- Change the Apache port back to 80:
sudo nano /etc/apache2/ports.conf
- Change the port value:
Listen 80
- Restart Apache 2:
sudo /etc/init.d/apache2 restart
- Add a menu item/shortcut to the BBB server:
- MyLucid BigBlueButton (Teleconferencing) -- firefox http://mylucidbbb00.dyndns.org:81
Install the Firewall
- Add Firestarter firewall:
sudo apt-get install firestarter
- Start Firestarter:
- Menu -> Internet -> Firestarter
- and allow the incoming (inbound) and outgoing (outbound) ports:
80, 443, 81, 9123, 1935, 22199
Each port must be separately added as a rule for inbound and outbound traffic. For example, to enable port 80:
- Firestarter -> Policy -> Editing: Inbound traffic policy -> Allow service (right click on white box) -> Add rule -> Port: 80 -> When the source is: Anyone -> Add -> Apply Policy
- Firestarter -> Policy -> Editing: Outbound traffic policy -> Restrictive by default, whitelist traffic -> Allow service (right click on white box) -> Add rule -> Port: 80 -> When the source is: Firewall host -> Add -> Apply Policy
- (Note: It is pointed out to me repeatedly that Firestarter is not being currently updated. However, Firestarter is not the actual firewall. iptables is, and iptables is continually updated as part of the Linux kernel. Firestarter is merely an easy-to-use front-end for editing the iptables rules that has been stable for a long time. Other choices for this task include ufw/gufw (which is markedly more difficult to use, IMO). This is completely an area of user preference. The instructions above for Firestarter are not easily transferable to ufw/gufw.)
Install Moodle
- Read this Moodle tutorial. Also see this demo site.
- If the LAMP server stack has not been previously installed, do it now. Make sure the MySQL "root" user password (such as lucidsql00) that is created during this process is recorded for future use.
- Install:
sudo apt-get install moodle
- Choose the mysql-server, since it is already installed.
- Should access to this server be restricted to localhost? No
- Is your FQDN correct? Yes (don't worry whether it is or isn't -- this can be adjusted later)
- Should https be required to access this Moodle server? No
- Should a default database be created for Moodle on localhost? Yes
- root's MySQL password: lucidsql00
- Moodle database password: mylucidmoodleword00
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Edit the Moodle configuration file:
sudo gedit /etc/moodle/config.php
- so that the FQDN (in this case the URL) is correctly noted:
$CFG->wwwroot = 'http://mylucid00.dyndns.org/moodle';
- Finish installation by logging in to the Moodle server at http://localhost/moodle/admin or:
- http://mylucid00.dyndns.org/moodle/admin -> Unattended installation? (ticked)
- Admin user: mylucid00admin
- Admin password: mylucid00word
- Admin e-mail: firstname.lastname@example.com
- City: MyTown
- Site name: My Lucid Moodle 00
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Add the BigBlueButton API:
sudo wget http://www.dualcode.com/bigbluebutton/bigbluebutton.zip sudo unzip bigbluebutton.zip sudo mkdir /usr/share/moodle/mod/bigbluebutton sudo cp -r bigbluebutton/mod/bigbluebutton/* /usr/share/moodle/mod/bigbluebutton/ sudo cp -r bigbluebutton/lang/* /usr/share/moodle/lang/ sudo rm bigbluebutton.zip sudo rm -r bigbluebutton/* sudo rmdir bigbluebutton
- Login to the Moodle site (as an administrator) and load the module:
- Moodle -> Site Administration -> Notifications (Make sure to click on Notifications)
- -> Activities -> Manage Activities -> BigBlueButton -> Settings
- -> Input the IP address/URL of your BigBlueButton server (mylucidbbb00.dyndns.org:81). Do not enter the leading http:// .
- -> Input the Security Salt from your BigBlueButton server. This is in a file called "bigbluebutton.properties" on the BigBlueButton server. On my Ubuntu server I found it at /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties:
sudo gedit /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
The security salt string can be found:
Input that long string of numbers and letters to the field in Moodle.
- -> Put a star in the Meeting IDs field. That will allow an unlimited number of rooms to be created. You can also put any number here to restrict how many rooms on your BigBlueButton server you want running at any one time. (This can eventually become important for performance reasons.)
- In the (Course) Weekly Outline:
-> Add an activity... -> BigBlueButton ->
and set the desired passwords for the meeting, etc.
- Add a menu item / shortcut to the Moodle server:
- My Lucid Moodle (Teaching site) -- firefox http://mylucid00.dyndns.org/moodle
Install MediaWiki
- Read this MediaWiki tutorial. Also see this demo site.
- If the LAMP server stack has not been previously installed, do it now. Make sure the MySQL "root" user password (such as lucidsql00) that is created during this process is recorded for future use.
Two separate wikis are created. One will be for private internal usage and one for a public audience.
- Create an additional URLs (Add Host) at DynDNS.com: mylucidwiki00.dyndns.org.
- Install MediaWiki:
sudo apt-get install mediawiki sudo a2enmod rewrite
- Create a folder for each subsite (in this example named private and public.
sudo mkdir /etc/mediawiki/private sudo mkdir /etc/mediawiki/public
- Create an upload folder for images in each subwiki folder:
sudo mkdir /etc/mediawiki/private/images sudo mkdir /etc/mediawiki/public/images
- Copy a 135x135 image that you wish to use as a wiki logo (in the upper left corner) into the /etc/mediawiki/subwiki/images folder for each subwiki, naming it WikiLogo.png there. For example:
sudo cp ~/Pictures/mybestpic135.png /etc/mediawiki/public/images/WikiLogo.png sudo cp ~/Pictures/mysecondbestpic135.png /etc/mediawiki/private/images/WikiLogo.png
- The images folders should belong to the group www-data, and the group should have "Can View & Modify Content" permissions.
sudo chown root:www-data /etc/mediawiki/private/images sudo chown root:www-data /etc/mediawiki/public/images sudo chmod 774 /etc/mediawiki/private/images sudo chmod 774 /etc/mediawiki/public/images
- Edit the config file so it recognizes MediaWiki:
sudo nano /etc/mediawiki/apache.conf
Uncomment (remove the #) the line:
Alias /mediawiki /var/lib/mediawiki
- Restart apache2:
sudo /etc/init.d/apache2 restart
- Run/install MediaWiki from the web browser by logging into:
firefox http://localhost/mediawiki
- Wiki name: My Lucid Wiki (Private)
- Contact e-mail: email@example.com
- Admin username: mylucid00admin -> Password: mylucid00word
- Object caching: No caching
- E-mail features (all): disabled
- Database config: MySQL -> Database host: localhost -> Database name: mylucid00wikipriv -> DB username: mylucid00priv -> DB password: mylucid00privword -> Superuser account: Use superuser account (ticked) -> Superuser name: root -> Superuser password: lucidsql00 -> Database table prefix: mylucid00prv_
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Copy your local settings configuration file to /etc/mediawiki (and make a backup of the original):
sudo cp /var/lib/mediawiki/config/LocalSettings.php /etc/mediawiki/private sudo mv /var/lib/mediawiki/config/LocalSettings.php /var/lib/mediawiki/config/LocalSettings_mylucid00private_install.php
- Repeat the MediaWiki installation from the web browser by again logging into:
firefox http://localhost/mediawiki
- Wiki name: My Lucid Wiki (Public)
- Contact e-mail: firstname.lastname@example.com
- Admin username: mylucid00admin -> Password: mylucid00word
- Object caching: No caching
- E-mail features (all): disabled
- Database config: MySQL -> Database host: localhost -> Database name: mylucid00wikipub -> DB username: mylucid00pub -> DB password: mylucid00pubword -> Superuser account: Use superuser account (ticked) -> Superuser name: root -> Superuser password: lucidsql00 -> Database table prefix: mylucid00pub_
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Copy your local settings configuration file to /etc/mediawiki (and make a backup of the original):
sudo cp /var/lib/mediawiki/config/LocalSettings.php /etc/mediawiki/public sudo mv /var/lib/mediawiki/config/LocalSettings.php /var/lib/mediawiki/config/LocalSettings_mylucid00public_install.php
- The LocalSettings.php configuration file for each wiki must be edited. See this tutorial. There are many security settings that must be changed before going live, or the site will certainly be hacked.
- Edit your configuration variables:
sudo gedit /etc/mediawiki/private/LocalSettings.php sudo gedit /etc/mediawiki/public/LocalSettings.php
- Make sure the following lines are included in the LocalSettings.php file, replacing similar lines that already exist in the file and substituting private or public where appropriate:
# If PHP's memory limit is very low, some operations may fail. ini_set( 'memory_limit', '96M' ); # #$wgScriptPath = "/mediawiki"; $wgScriptPath = "/private"; $wgLogo = "$wgScriptPath/images/WikiLogo.png"; # $wgUploadDirectory = $_SERVER['DOCUMENT_ROOT'].'/private/images'; $wgUploadPath = "$wgScriptPath/images"; # #Database administrative user/password $wgDBadminuser = $wgDBuser; $wgDBadminpassword = $wgDBpassword; # #These are set for initial maximum security. They can be changed later. # #User restrictions #Account creation by anonymous users $wgGroupPermissions['*']['createaccount'] = false; #Account creation by registered users $wgGroupPermissions['user']['createaccount'] = false; #Account creation by sysops $wgGroupPermissions['sysop']['createaccount'] = true; # #Anonymous user permissions $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['createpage'] = false; $wgGroupPermissions['*']['createtalk'] = false; # #Uploads rules ## To enable image uploads, make sure the 'images' directory ## is writable, then set this to true: #$wgEnableUploads = false; $wgEnableUploads = true; #Only allow restricted uploads $wgCheckFileExtensions = true; $wgStrictFileExtensions = true; $wgFileExtensions = array('png', 'gif', 'jpg'); #Permissions for uploads #Not for Anonymous $wgGroupPermissions['*']['upload'] = false; $wgGroupPermissions['*']['reupload'] = false; $wgGroupPermissions['*']['reupload-shared'] = false; #Uploads (but not re-uploads) for Users $wgGroupPermissions['user']['upload'] = true; $wgGroupPermissions['user']['reupload'] = false; $wgGroupPermissions['user']['reupload-shared'] = false; #Sysops $wgGroupPermissions['sysop']['upload'] = true; $wgGroupPermissions['sysop']['reupload'] = true; $wgGroupPermissions['sysop']['reupload-shared'] = true; # #For ReCaptcha -- this requires installing the Recaptcha extension # #require_once( "$IP/extensions/recaptcha/ReCaptcha.php" ); # Sign up for these at http://recaptcha.net/api/getkey #$recaptcha_public_key = ' xyxyxyxyxyxyxyxyx '; #$recaptcha_private_key = ' ababababababababa '; # #The clears the cache daily, which I use to change rotating content (pictures, fortunes, etc.) daily. # require("includes/GlobalFunctions.php"); $wgCacheEpoch = wfTimestamp( TS_MW, time() - 86400 ); # 60*60*24 = 1 day
- In addition, a private wiki page should only be able to be read by registered users, so add these lines to LocalSettings.php for any private subwiki:
#This example will disable viewing of all pages not listed in $wgWhitelistRead, then re-enable for registered users only: $wgGroupPermissions['*']['read'] = false; # The following line is not actually necessary, since it's in the defaults. Setting # '*' to false doesn't disable rights for groups that have the right separately set # to true! $wgGroupPermissions['user']['read'] = true;
- Make symbolic links from the Apache2 folder to the subwiki folders:
sudo mkdir /var/www/Wikis sudo ln -s /etc/mediawiki/private /var/www/Wikis/private sudo ln -s /etc/mediawiki/public /var/www/Wikis/public
- Link the files from your installation directory to each subwiki folder:
sudo ln -s /usr/share/mediawiki/* /etc/mediawiki/private/. sudo ln -s /usr/share/mediawiki/* /etc/mediawiki/public/.
- Create and edit an Apache2 configuration file (e.g. /etc/apache2/sites-available/wikivirtualhost):
sudo gedit /etc/apache2/sites-available/wikivirtualhost
- so that the lines are similar to:
<VirtualHost *:80> UseCanonicalName off # DocumentRoot /var/www/Wikis DirectoryIndex index.php index.html # ServerName mylucidwiki00.dyndns.org ServerAlias *.mylucidwiki00.dyndns.org # RewriteEngine On RewriteCond %{REQUEST_URI} !^private* RewriteCond %{REQUEST_URI} !^public* RewriteRule ^/(/.*|)$ /public/$1 [R] # <Directory /var/www/Wikis> Options Indexes FollowSymLinks MultiViews Options FollowSymLinks MultiViews #AllowOverride None Order allow,deny allow from all </Directory> # </VirtualHost>
- Pay attention to the rewrite rule:
RewriteEngine On RewriteCond %{REQUEST_URI} !^private* RewriteCond %{REQUEST_URI} !^public* RewriteRule ^/(/.*|)$ /public/$1 [R]
This is a complex rule that means that as long as the REQUEST_URI (which is the part after the server name, i.e. http://mylucidwiki00.dyndns.org/REQUEST_URI) does not match private or public (the symbol ! means not), then use public as the default directory.
- Remember that your virtual host configuration file won't be active until you make a symbolic link:
sudo ln -s /etc/apache2/sites-available/wikivirtualhost /etc/apache2/sites-enabled
- Restart Apache:
sudo /etc/init.d/apache2 restart
- The two sites will be available:
- http://mylucidwiki00.dyndns.org or http://mylucidwiki00.dyndns.org/public
- and
- http://mylucidwiki00.dyndns.org/private
- Add menu items / shortcuts to the Wiki(s):
- My Lucid Wiki (Public) (MediaWiki) -- firefox http://mylucidwiki00.dyndns.org
- My Lucid Wiki (Private) (MediaWiki) -- firefox http://mylucidwiki00.dyndns.org/private
Import Ubuntuguide into your local wiki
- Read this tutorial on importing Ubuntuguide into the local wiki.
- Examine the list of wiki pages available at Ubuntuguide:
- Ubuntuguide.org -> Toolbox: Special Pages -> All pages
Many of these pages will not be necessary for your private copy. Copy only the names of the wiki pages files you wish to export. The recommended list is below.
- Export the desired pages from Ubuntuguide as an XML export:
- Ubuntuguide.org wiki -> Toolbox: Special Pages -> Export pages
(Note: This list of (English-language) wiki pages was accurate for the recent Lucid version. You may want to check all pages to see if something you want is missing from this list.)
Ubuntu:All Boot from a Live CD Multiple OS Installation Multiple OS Installation Jaunty Lucid Multiple OS Installation Manipulating Partitions Virtualbox in Windows Android emulation Email with PGP Tor Anonymous email Malware Mail Server setup Screencasts Netflix Video Conversion Video ripping tips Streamripper EBook Conversion Transparent Image Backgrounds Wink 64bit Remastersys Dynamic IP servers FTP tips Using SSH to Port Forward Limit the user accounts that can connect through OpenSSH remotely OpenVPN server WebDAV Ia32libs Ultimate Server Jaunty Ultimate Server Jaunty with OpenVistA EHR Ultimate Server Jaunty Customization Ultimate Server Jaunty Customization_OV Ultimate Server Lucid Ultimate Server Lucid with OpenVistA EHR Ultimate Server Lucid Customization Ultimate Server Lucid Customization_OV Apache2 reverse proxies MediaWiki tips Mediawiki site building tips Collections tips PdfBook tips Drupal6 tips Drupal site building tips Old Drupal6 tips Moodle tips Fortune DAViCal tips DAViCal current version BigBlueButton WebHuddle tips OpenVistA EHR WorldVistA_EHR WorldVistA tips Skulltag tips MFC-7820N Upgrades Ubuntuguide XML exports Ubuntuguide page lists Malicious commands to avoid DefaultApplications Main Page Template:U All/Introduction Template:Ubuntuguide core wikipages Template:Ubuntuguide Jaunty wikipages Template:Ubuntuguide Jauntycore wikipages Template:Ubuntuguide Karmic wikipages Template:Ubuntuguide Karmiccore wikipages Template:Ubuntuguide Lucid wikipages Template:Ubuntuguide Lucidcore wikipages Template:Ubuntuguide LucidLanguages Template:Ubuntuguide Natty wikipages Template:Ubuntuguide Nattycore wikipages Template:Ubuntuguide NattyLanguages Template:Ubuntuguide Oneiric wikipages Template:Ubuntuguide Oneiriccore wikipages Template:Ubuntuguide OneiricLanguages Template:Ubuntuguide Precise wikipages Template:Ubuntuguide Precisecore wikipages Template:Ubuntuguide PreciseLanguages Template:Ultimate Server Jaunty Core Template:USJ Customize Core Template:USJ Customize NewUser Template:USJ Customize OV Template:USJ Adjust SSH Template:USJ New SSH Users Template:USJ networking Template:Ultimate Server Lucid Core Template:USL Customize Core Template:USL Customize NewUser Template:USL Customize OV Template:USL Adjust SSH Template:USL New SSH Users Template:USL networking Template:OpenVistA EHR Template:OpenVistA Server functions Template:WorldVistA Template:Licenses Template:Android emulation Template:Drupal BBB Template:Moodle installation Template:Streamripper Template:PartitionDesign Template:WindowsPartitions Template:Netflix Template:Ia32libs Template:Tor Template:Anonymous email Template:Malware Template:U RegisterHeader VirtualServers Ubuntu:Lucid Template:U Lucid/Administration Template:U Lucid/Introduction Template:U Lucid/General Template:U Lucid/OtherVersions Template:U Lucid/OtherResources Template:U Lucid/Installation Template:U Lucid/Repositories Template:U Lucid/Packages Template:U Lucid/DesktopAddons Template:U Lucid/Requests Template:Lucid/Virtualization Template:U Lucid/EdutainmentIntro Template:Lucid/Edutainment Template:Lucid/Games Template:U Lucid/Internet Template:Lucid/Videoconferencing Template:U Lucid/Privacy Template:U Lucid/ProprietaryExtras Template:U Lucid/Troubleshooting Template:Lucid/Graphics Template:Lucid/Screencapture Template:Lucid/Video Template:Lucid/Audio Template:Lucid/AudioVideoConversion Template:U Lucid/CD DVD Template:U Lucid/Music Template:Lucid/MediaCenters Template:Lucid/HomeAutomation Template:Lucid/Office Template:Lucid/Financial Template:Lucid/Groupware Template:Lucid/Wiki Template:Lucid/WebPublishing Template:Lucid/Maps Template:Lucid/Development Template:Lucid/Science Template:Lucid/MiscApps Template:Lucid/Utilities Template:Lucid/Backup Template:Lucid/Hardware Template:Lucid/Networking Template:Lucid/NetworkAdmin Template:Lucid/Servers
- -> Include only the current revision, not the full history (ticked) -> Offer to save as a file: (ticked) -> Export -> Save file
- -> Ubuntuguide-xxxxx.xml
- Import the Ubuntuguide XML export file into the local wiki:
- Local wiki -> log in -> Username: wikiadmin -> Password: wikiadminpassword -> Log in
- -> Special Pages -> Page Tools -> Import pages -> Browse -> Ubuntuguide-xxxxx.xml -> Open -> Upload file
- Edit the Main Page of the wiki and add a link to the online Ubuntuguide as well as the imported copy:
*[[Ubuntu:Lucid|Ubuntuguide Lucid (local copy for editing)]] *[http://ubuntuguide.org/wiki/Ubuntu:Lucid Ubuntuguide Lucid (online)]
The idea is to edit the locally stored Ubuntuguide as you customize your system. It can also serve as a template and an example of how to use the MediaWiki wiki.
- Edit the local copy of Ubuntuguide to hide irrelevant links. In MediaWiki, use the <!---> and <---> tags to comment out instructions or text that should not be displayed. Example:
- Ubuntuguide Lucid (local copy for editing) -> edit ->
<!--->{{LucidLynxLanguageBar|languages=Languages:|InProgress=In progress:}}<--->
Install Drupal6
- Read this Drupal6 tutorial. Also see this demo site.
- If the LAMP server stack has not been previously installed, do it now. Make sure the MySQL "root" user password (such as lucidsql00) that is created during this process is recorded for future use.
- Create two additional URLs (Add Hosts) at DynDNS.com: mylucid00.dyndns.org and mylucidweb00.dyndns.org
- Install Drupal6 and the first website (mylucid00.dyndns.org).
sudo apt-get install drupal6
- Configure database for drupal6 with dbconfig-common? Yes
- Database type to be used by Drupal6: mysql
- Password of your database's administrative user: lucidsql00
- MySQL application password for drupal6: mylucid00drupalword
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Copy the /etc/drupal/6/sites/default folder to the first subsite (in this example named mylucid00.dyndns.org).
sudo cp -r /etc/drupal/6/sites/default /etc/drupal/6/sites/mylucid00.dyndns.org
- Remove the symbolic link and create a new files folder. The files folder should belong to the group www-data, and the group should have "Can View & Modify Content" permissions.:
sudo rm /etc/drupal/6/sites/mylucid00.dyndns.org/files sudo mkdir /etc/drupal/6/sites/mylucid00.dyndns.org/files sudo chown root:www-data /etc/drupal/6/sites/mylucid00.dyndns.org/files sudo chmod 774 /etc/drupal/6/sites/mylucid00.dyndns.org/files
- Copy a 110x110 image that you wish to use as a logo (in the upper left corner) into the /etc/drupal/6/sites/mylucid00.dyndns.org/files folder, naming it WebLogo.png there. For example:
sudo cp ~/Pictures/mybestpic110.png /etc/drupal/6/sites/mylucid00.dyndns.org/files/WebLogo.png
- The permissions of the settings.php and dbconfig.php files must be unrestricted during installation:
sudo chmod 777 /etc/drupal/6/sites/mylucid00.dyndns.org/settings.php sudo chmod 777 /etc/drupal/6/sites/mylucid00.dyndns.org/dbconfig.php
- Create a virtual host file for the new sites:
sudo gedit /etc/apache2/sites-available/drupal6virtualhost
Add the lines:
# # Virtual hosting configuration for Drupal6 # # <VirtualHost *:80> ServerAdmin email@example.com # DocumentRoot /usr/share/drupal6/ ServerName mylucid00.dyndns.org ServerAlias *.mylucid00.dyndns.org mylucid00.dyndns.org RewriteEngine On RewriteOptions inherit </VirtualHost> # <VirtualHost *:80> ServerAdmin email@example.com # DocumentRoot /usr/share/drupal6/ ServerName mylucidweb00.dyndns.org ServerAlias *.mylucidweb00.dyndns.org mylucidweb00.dyndns.org RewriteEngine On RewriteOptions inherit </VirtualHost>
- Remember that your virtual host configuration file won't be active until you make a symbolic link:
sudo ln -s /etc/apache2/sites-available/drupal6virtualhost /etc/apache2/sites-enabled
- Restart Apache:
sudo /etc/init.d/apache2 restart
- Install the first website through the web browser:
firefox http://mylucid00.dyndns.org/install.php
- Site Name: My Lucid 00
- Site e-mail address: firstname.lastname@example.com
- Administrator Account Username: mylucid00admin -> Password: mylucid00word
- Clean URLs: Enabled
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Makes sure only administrators can create new accounts initially, or you will have lots of new guest within the first 30 minutes of being live.
- Drupal -> Administer -> User management -> User settings -> Only site administrators can create new accounts
- The permissions of the settings.php and dbconfig.php files must be restricted after installation:
sudo chmod 744 /etc/drupal/6/sites/mylucid00.dyndns.org/settings.php sudo chown root:www-data /etc/drupal/6/sites/mylucid00.dyndns.org/dbconfig.php sudo chmod 740 /etc/drupal/6/sites/mylucid00.dyndns.org/dbconfig.php
- While still logged in as an administrator, update the database:
- Now you will re-install a new database for each planned subsite.:
sudo dpkg-reconfigure drupal6
- Re-install database for drupal6? Yes
- Database type to be used by drupal6: mysql
- Connection method for MySQL database of drupal6: unix socket
- Name of your database's administrative user: root
- Password of your database's administrative user: lucidsql00
- username for drupal6: drupal6b
- database name for drupal6: drupal6b
- Copy the /etc/drupal/6/sites/default folder to the second subsite (in this example named mylucidweb00.dyndns.org).
sudo cp -r /etc/drupal/6/sites/default /etc/drupal/6/sites/mylucidweb00.dyndns.org
- Remove the symbolic link and create a new files folder. The files folder should belong to the group www-data, and the group should have "Can View & Modify Content" permissions.:
sudo rm /etc/drupal/6/sites/mylucidweb00.dyndns.org/files sudo mkdir /etc/drupal/6/sites/mylucidweb00.dyndns.org/files sudo chown root:www-data /etc/drupal/6/sites/mylucidweb00.dyndns.org/files sudo chmod 774 /etc/drupal/6/sites/mylucidweb00.dyndns.org/files
- Copy a 110x110 image that you wish to use as a logo (in the upper left corner) into the /etc/drupal/6/sites/mylucidweb00.dyndns.org/files folder, naming it WebLogo.png there. For example:
sudo cp ~/Pictures/mysecondbestpic110.png /etc/drupal/6/sites/mylucidweb00.dyndns.org/files/WebLogo.png
- The permissions of the settings.php and dbconfig.php must be unrestricted during installation:
sudo chmod 777 /etc/drupal/6/sites/mylucidweb00.dyndns.org/settings.php sudo chmod 777 /etc/drupal/6/sites/mylucidweb00.dyndns.org/dbconfig.php
- Install the second website through the web browser:
firefox http://mylucidweb00.dyndns.org/install.php
- Site Name: My Lucid Web 00
- Site e-mail address: email@example.com
- Administrator Account Username: mylucid00admin -> Password: mylucid00word
- Clean URLs: Enabled
- (Note: You could also generate a random password and use it here. Just be sure to record it in an accessible location.)
- Makes sure only administrators can create new accounts initially, or you will have lots of new guest within the first 30 minutes of being live.
- Drupal -> Administer -> User management -> User settings -> Only site administrators can create new accounts
- The permissions of the settings.php and dbconfig.php files must be restricted after installation:
sudo chmod 744 /etc/drupal/6/sites/mylucidweb00.dyndns.org/settings.php sudo chown root:www-data /etc/drupal/6/sites/mylucidweb00.dyndns.org/dbconfig.php sudo chmod 740 /etc/drupal/6/sites/mylucidweb00.dyndns.org/dbconfig.php
- While still logged in as an administrator, update the database:
- This process can be repeated if desired (if enough URLs are available).
- The two websites will be available from the web:
- http://mylucid00.dyndns.org
- and
- http://mylucidweb00.dyndns.org
- Set up the cron task for each site:
sudo crontab -e
And add the lines (with the nano editor, or the one you prefer):
45 * 18 * * /usr/bin/wget -O - -q -t 1 http://mylucid00.dyndns.org/cron.php 45 * 19 * * /usr/bin/wget -O - -q -t 1 http://mylucidweb00.dyndns.org/cron.php
- this will run the scripts separately, at 45 minutes after the 1800 hour and the 1900 hour every day (each site at a different hour).
- After all sites are installed, create an /etc/drupal/6/sites/all folder in which to store shared modules and themes. Copy the folders:
sudo mkdir /etc/drupal/6/sites/all sudo mkdir /etc/drupal/6/sites/all/modules sudo mdkir /etc/drupal/6/sites/all/themes
- and (optionally) make a directory for shared files:
sudo mkdir /etc/drupal/6/sites/all/files sudo chmod 777 /etc/drupal/6/sites/all/files
- then update each website again (while logged in as the administrator for each website).
http://mylucid00.dyndns.org/update.php http://mylucidweb00.dyndns.org/update.php
- Now read Drupal6 site building tips.
- Change theme and add WebLogo:
- Drupal -> Administer -> Themes -> Garland -> configure -> color set: Ash -> Logo image settings -> Use the default logo: (unticked)
- -> Path to custom logo: sites/mylucid00.dyndns.org/files/WebLogo.png
- Add Ubercart online store.
- Install PayPal cURL-php library pre-requisite (see this link for more info):
sudo apt-get install php5-curl sudo /etc/init.d/apache2 restart
- Install the BigBlueButton videoconferencing server API (that is able to call the BBB server from within Drupal):
cd /etc/drupal/6/sites/all/modules sudo wget http://ftp.drupal.org/files/projects/bbb-6.x-1.x-dev.tar.gz sudo tar zxvf bbb-6.x-1.x-dev.tar.gz sudo rm bbb-6.x-1.x-dev.tar.gz
- Note: Enable permissions for added modules update and adjust permissions after module installation.
- Drupal -> Administer -> Modules -> Big Blue Button -> select the Big Blue Button module functions you intend to use
then update:
- http://mylucid00.dyndns.org/update.php
- Test the BigBlueButton settings:
- Drupal -> Site administration -> Site configuration -> BigBlueButton Conferencing
- -> Base URL: http://mylucidbbb00.dyndns.org:81/bigbluebutton/
- -> Change the Security Salt (found in a file called "bigbluebutton.properties" on the BigBlueButton server). On my Ubuntu server I found it at /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties:
sudo gedit /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
- Copy the security salt number found in the setting:
- -> Save configuration -> Test connection
- Create a new content type named Teleconference:
- Drupal -> Administer -> Content management -> Content types -> Add content type
-> Name: Teleconference -> Type: teleconference -> Big Blue Button settings -> Treat this node type as conference: (ticked) -> Show links to join / start a meeting beneath the node: (ticked) -> Display meeting status on node: (ticked) -> Save content type
- Create a new node of content type Teleconference:
Drupal -> Create content -> Teleconference -> Conference settings -> ...
- Add a Welcome page and a link to public wiki
- Drupal -> Create Content -> Page -> Welcome -> ... -> Promoted to front page (ticked) -> Save
- Drupal -> Administer -> Site building -> Menus -> Primary links -> Add item -> Path: http://mylucidwiki00.dyndns.org/public -> Menu link title: My Lucid Wiki -> Weight: 10 -> Save
- Add menu items / shortcuts to the Drupal Website(s):
- My Lucid Website (Public) (Drupal) -- firefox http://mylucid00.dyndns.org
- and
- My Lucid Website (Private) (Drupal) -- firefox http://mylucidweb00.dyndns.org
cd /etc/drupal/6/sites/all/modules sudo wget http://ftp.drupal.org/files/projects/token-6.x-1.12.tar.gz sudo tar zxvf token-6.x-1.12.tar.gz sudo rm token-6.x-1.12.tar.gz
cd /etc/drupal/6/sites/all/modules sudo wget http://ftp.drupal.org/files/projects/ubercart-6.x-2.0.tar.gz sudo tar zxvf ubercart-6.x-2.0.tar.gz sudo rm ubercart-6.x-2.0.tar.gz
- Note: You must Enable permissions for added modules update and adjust permissions after module installation.
- Drupal -> Administer -> Modules -> Ubercart -> select the Ubercart module functions you intend to use
then update:
- http://mylucid00.dyndns.org/update.php
- Read the Ubercart documentation to set up your online store/services. Run:
- Drupal -> Administer -> Store administration
- Further customize each website by installing the modules as detailed here.
Install ddclient
- Install (see this tutorial):
sudo apt-get install ddclient
- Dynamic DNS service provider: www.dyndns.com
- DynDNS fully qualified domain names: mylucid00.dyndns.org, mylucidweb00.dyndns.org, mylucidwiki00.dyndns.org, mylucidbbb00.dyndns.org, mylucidmoodle00.dyndns.org
- Username for dynamic DNS service: myluciddnsid -> Password: myluciddnsword
- Network interface (eth0, wlan0, etc.) used for dynamic DNS service: eth0
- Edit the ddclient configuration file:
sudo gedit /etc/ddclient.conf
- so that it resembles:
# Configuration file for ddclient generated by debconf # # /etc/ddclient.conf # daemon=3600 ssl=yes use=web, web=checkip.dyndns.com/, web-skip='IP Address' pid=/var/run/ddclient.pid protocol=dyndns2 #use=if, if=eth0 server=members.dyndns.org login=myluciddnsid password=' myluciddnsword ' # mylucid00.dyndns.org,mylucidweb00.dyndns.org,mylucidwiki00.dyndns.org,mylucidbbb00.dyndns.org,mylucidmoodle00.dyndns.org mylucid00.dyndns.org,mylucidcalendar00.dyndns.org,mylucidwiki00.dyndns.org,mylucidbbb00.dyndns.org,mylucidmoodle00.dyndns.org
- Note: There are companies on the Internet other than DynDNS.com that provide Dynamic DNS services as well (but several of them are very unreliable, in my experience). DynDNS.com is one of the oldest and most stable. I have found it convenient to forward my URLs (that I already had at other DNS providers) to the DynDNS URLs created in this walkthrough. However, if your original DNS provider supports reliable Dynamic DNS services, you may be able to get it to work with ddclient as well. See the instructions in the tutorial.
Add menu items for websites
Add a menu item for each website:
- My Lucid 00 (Drupal6 Website) -- firefox http://mylucid00.dyndns.org
- My Lucid 00 Web (Drupal6 Website) -- firefox http://mylucidweb00.dyndns.org
- My Lucid 00 BBB (BigBlueButton Teleconferencing) -- firefox http://mylucidbbb00.dyndns.org:81
- My Lucid 00 Wiki (Public) -- firefox http://mylucidwiki00.dyndns.org
- My Lucid 00 Wiki (Private) -- firefox http://mylucidwiki00.dyndns.org/private
- My Lucid 00 Moodle (Teaching site) -- firefox http://mylucidmoodle00.dyndns.org
Add Audacious audio player
- This is an optional component. I use this to stream music from Shoutcast Internet Radio to the office stereo system by plugging the computer output jack into the office stereo input jack. Install:
sudo apt-get install audacious audacious-plugins
- Change the Audacious audio to ALSA (unless you are willing to configure PulseAudio) and use the classic skin:
- Audacious -> Preferences -> Audio -> Current audio plugin: ALSA Output Plugin
- -> Appearance -> Classic -> Close
- Using the Menu Editor, create a menu item to Shoutcast Internet Radio with the command:
firefox http://classic.shoutcast.com
- Start Shoutcast Internet Radio and click on a radio station. When prompted for the file association, choose Audacious:
- "You have chose to open shoutcast-playlist.pls which is a: PLS file. What should Firefox want do with this file?" -> Open with ... -> Browse -> File system... -> usr -> bin -> audacious -> Open -> Do this automatically for files like this from now on: (ticked) -> OK
Install DAViCal group calendar server
If a full groupware server (Kolab, eGroupware, or Zimbra) is to be installed, there is no need for DaviCal. As a standalone group calendar server, though, it can't be beat.
- Read these installation instructions.
- Install the Sunbird calendaring client.
Allow Reverse proxies
If you have one LAN router that forwards all port 80 traffic to a single server yet you have multiple physical servers on the LAN (each using their own set of URLs), then the primary server (to which all port 80 traffic is sent) will have to act as a reverse proxy for the other servers. This is accomplished through Apache2 reverse proxies. See this tutorial.
Adding new SSH users
- On the server, create a second user account (that guest users can use for SSH purposes) with a password dissimilar to any other passwords (such as mylucidguestpassword):
sudo useradd -m mylucid00guest sudo passwd mylucid00guest sudo mkdir /home/mylucid00guest/.ssh sudo chmod 777 /home/mylucid00guest/.ssh
- Allow OpenSSH Password Authentication temporarily. Edit the OpenSSH configuration file:
sudo gedit /etc/ssh/sshd_config
- and temporarily allow Password-based Authentication by changing the line:
PasswordAuthentication no
- to
PasswordAuthentication yes
- then restart the OpenSSH server:
sudo /etc/init.d/ssh restart
From the new Linux user's client computer:
ssh-keygen scp -P 22199 ~/.ssh/id_rsa.pub firstname.lastname@example.com:~/.ssh/id_rsa.pub
- When prompted, of course, the guest password, mylucidguestpassword, should be entered.
- Back on the server (logged in as the administrator lucidadmin00), turn off the OpenSSH Password Authentication again:
sudo gedit /etc/ssh/sshd_config
Change the line:
PasswordAuthentication yes
- to
PasswordAuthentication no
- then restart the OpenSSH server:
sudo /etc/init.d/ssh restart
It is then usually best (for security reasons) to now change the guest password to something completely different:
sudo passwd mylucid00guest
- Copy the new id_rsa.pub key to the mylucid00admin folder and concatenate it to the authorized_keys file there:
sudo cp /home/mylucid00guest/.ssh/id_rsa.pub /home/lucidadmin00/.ssh/id_rsaguest.pub sudo chown -R lucidadmin00 /home/lucidadmin00 cd ~/.ssh cat authorized_keys id_rsaguest.pub >> authorized_keys
Note: this new /home/lucidadmin00/.ssh/authorized_keys file should also be copied to /home/client9260/.ssh/authorized_keys and /home/text9260/.ssh/authorized_keys as detailed in the subsequent OpenVistA EHR section.
- If Windows-based PuTTY SSH users are to be added to the system, then see this tutorial. The SSH keys must be tweaked to be used with OpenSSH, copied to the server, and then concatenated to the authorized_keys file in a similar fashion.
Add security scanners
- Don't believe the hype about Linux being free from viruses, trojans, and rootkits. They happen (although less common than in other operating systems). The biggest risk comes from installing software from repositories other than official Ubuntu repositories. Be careful. Here are some recommended security utilities:
- ClamAV is an anti-virus suite. Install:
sudo apt-get install clamav
- Run:
- Menu -> System -> ClamAV Anti-Virus Manager
- Rkhunter is a rootkit hunter. Install and run:
sudo apt-get install rkhunter sudo rkhunter
- Chkrootkit is another rootkit hunter. Install and run:
sudo apt-get install chkrootkit sudo ./chkrootkit
Install an EHR (Electronic Health Record) system
- Although these instructions are for OpenVistA EHR, other VistA EHR derivatives can be installed in a somewhat similar fashion.
- The OpenSSH server was set to listen on port 22199. Make sure the router forwards port 22199 to this computer's LAN IP address. The OpenSSH server will be reached by tunneling to myjaunty00.dyndns.org using port 22199.
Install OpenVistA server
- Read OpenVistA on Ubuntu
- Install pre-requisites:
sudo apt-get install xinetd update-inetd whois apache2-suexec
- Note: The Astronaut installer checks for an open port 9260 and it will not proceed if it is closed. Re-enable the firewall (i.e. ok to close port 9260 again) after installation is complete.
- A package can be installed directly from the Astronaut VistA repositories (replace lucid with karmic if using Karmic Koala 9.10) by adding the repository:
sudo echo "deb http://software.astronautvista.com/deb lucid main" >> /etc/apt/sources.list.d/lucid-partner.list sudo apt-get update
- then installing the Astronaut version of the OpenVistA server:
sudo apt-get install astronaut-ov-server-beta
- Note: During the VistA server installation, you may wish to save (as a text file) the installation notes that are displayed for future reference.
- Change the passwords for the server login IDs.
sudo passwd text9260 [sudo] password for jauntyadmin00: jauntyword00 Enter new UNIX password: vista!456 Retype new UNIX password: vista!456
sudo passwd client9260 [sudo] password for jauntyadmin00: jauntyword00 Enter new UNIX password: vista!456 Retype new UNIX password: vista!456
sudo passwd openvistaEHR [sudo] password for jauntyadmin00: jauntyword00 Enter new UNIX password: vista!456 Retype new UNIX password: vista!456
- Create a Menu Item / Shortcut for text 9260:
su text9260
- Name this Menu Item: VistA Server Admin (text9260). Make sure to set Advanced -> Run in terminal (ticked).
- The password set in the previous step (for text9260) will be required upon logging in.
- Create a Menu Item / shortcut for VistA Commander:
- Name this Menu Item: VistA Commander Server Admin. Make sure to set Advanced -> Run in terminal (ticked).
Install OpenVistA-CIS Linux client
- Read OpenVistA-CIS on Linux.
- Install dependencies:
sudo apt-get install mono-runtime libmono-corlib2.0-cil libgtk2.0-cil libglade2.0-cil libmono-cairo2.0-cil libmono-winforms2.0-cil libmono-system-runtime2.0-cil
- Create directories then download and unzip the OpenVistA-CIS binaries into them:
sudo mkdir /etc/openvistacisclient cd /etc/openvistacisclient sudo wget http://sourceforge.net/projects/openvista/files/OpenVista%20CIS/1.0%20RC2/openvistacis-0.9.96-client.zip/download sudo unzip openvistacis-0.9.96-client.zip
sudo mkdir /etc/openvistacisvitals cd /etc/openvistacisvitals sudo wget http://sourceforge.net/projects/openvista/files/OpenVista%20CIS/1.0%20RC2/openvistacis-0.9.96-vitals.zip/download sudo unzip openvistacis-0.9.96-vitals.zip
- Create Menu shortcuts:
- Menu Editor -> New item
- -> General -> Name: OpenVistA-CIS Client (localhost connection)
- -> Command: mono OpenVistaCIS.exe --server=127.0.0.1 --port=9260
- -> Advanced -> Work path: /etc/openvistacisclient
- Menu Editor -> New item
- -> General -> Name: OpenVistA-CIS Vitals (localhost connection)
- -> Command: mono OpenVistaVitals.exe --server=127.0.0.1 --port=9260
- -> Advanced -> Work path: /etc/openvistacisvitals
Note: When running from a menu item shortcut, make sure you set the directory as the workpath. I place the menu items in a separate submenu named EHR. Although the OpenVistA-CIS client uses port 9201 by default, the Astronaut OpenVistA server uses port 9260 by default.
Note: If you wish to connect directly through the network (without using an SSH tunnel), merely replace --server=127.0.0.1 with --server=myjaunty00.dyndns.org and make sure the LAN's router forwards port 9260 to the LAN IP address of the server (and make sure that all firewalls allow port 9260 to be open).
- Use your Access Code / Verify Code as the LoginID / Password ( default at installation for Astronaut systems is sys.admin / vista!123 ). This should be changed at the initial connection, e.g. to vista!456.
Connecting through an SSH tunnel
This method is necessary to connect remote clients to the server through a secure, encrypted tunnel. It is worthwhile to test this connection method by setting it up on the server, as well. Make sure your router is forwarding (to your server) the SSH port you selected (in these examples port 22199).
- In order to maintain the Astronaut structure, copy the (previously created) SSH authorized_keys file to the .ssh folders for client9260 and text9260 (where serveruser = jauntyadmin00 on this server):
sudo mkdir /home/client9260 sudo mkdir /home/client9260/.ssh sudo cp /home/serveruser/.ssh/authorized_keys /home/client9260/.ssh/ sudo chown -R client9260 /home/client9260
sudo mkdir /home/text9260 sudo mkdir /home/text9260/.ssh sudo cp /home/serveruser/.ssh/authorized_keys /home/text9260/.ssh/ sudo chown -R text9260 /home/text9260
- Restart the OpenSSH server:
sudo /etc/init.d/ssh restart
- Now you can connect securely with an SSH tunnel without requiring a password.
ssh -l client9260 -L 9201:127.0.0.1:9260 myjaunty00.dyndns.org -p 22199
- Create Menu shortcuts for use when connecting through the SSH tunnel:
- Menu Editor -> New item
- -> General -> Name: OpenVistA-CIS Client
- -> Command: mono OpenVistaCIS.exe --server=127.0.0.1 --port=9201
- -> Advanced -> Work path: /etc/openvistacisclient
- Menu Editor -> New item
- -> General -> Name: OpenVistA-CIS Vitals
- -> Command: mono OpenVistaVitals.exe --server=127.0.0.1 --port=9201
- -> Advanced -> Work path: /etc/openvistacisvitals
- Create a Menu Item / Shortcut with the command:
ssh -f -l client9260 -L 9201:127.0.0.1:9260 myjaunty00.dyndns.org -p 22199 sleep 5; mono OpenVistaCIS.exe --server=127.0.0.1 --port=9201
- but with Advanced -> Work path: /etc/openvistacisclient configured in the Menu Item / Shortcut settings. It is not necessary to have the Advanced -> Run in terminal box ticked.
- It is also possible to use the command:
ssh -f -l client9260 -L 9201:127.0.0.1:9260 myjaunty00.dyndns.org -p 22199 sleep 5; mono /etc/openvistacisclient/OpenVistaCIS.exe --server=127.0.0.1 --port=9201
- Create Menu shortcuts for the Text9260 Server Admin client (a text-based SSH tunnel). This will be the method used to logon (in text mode) directly to the OpenVistA Server for administrative functions:
- Menu Editor -> New item
- -> General -> Name: OpenVistA Server (localhost)
- -> Command: ssh -l text9260 -L 9201:127.0.0.1:9260 127.0.0.1 -p 22199
- -> Advanced -> Run in terminal: (ticked)
- Menu Editor -> New item
- -> General -> Name: OpenVistA Server (network)
- -> Command: ssh -l text9260 -L 9201:127.0.0.1:9260 myjaunty00.dyndns.org -p 22199
- -> Advanced -> Run in terminal: (ticked)
When logging on, the ACCESS CODE / VERIFY CODE are the same as at the initial logon (sys.admin and vista!123 (or vista!456 if changed as in the above section)). The exit key for the OpenVistA server functions is ^ .
For more info about the OpenVistA Server functions, see here.
Note: While the text9260 SSH tunnel is open, it is also possible to simultaneously run the OpenVistA-CIS Client (using the menu shortcut created above which contains the command: mono OpenVistaCIS.exe --server=127.0.0.1 --port=9201).
- To access the OpenVistA Server from a Windows machine, use the Astronaut Clients (and the Windows OpenVistA-CIS clients). See here and here.
Adjust Login Manager IDs
- The two IDs text9260 and client9260 are meant to act as interfaces to the GT.M (MUMPS) database and not as login IDs for the GUI desktop. In fact, a user that logs into them can alter their settings accidentally. It is therefore better to exclude these two IDs from the Login Manager. It is also not necessary to have the openvistaEHR login ID enabled (although there is no harm in logging into this account).
- Menu -> System -> System Settings -> Advanced -> Login Manager -> Users -> Excluded users -> client9260 (ticked) -> text9260 (ticked) -> openvistaEHR (ticked)
- The accounts will remain active but will not show up on the Login screen.
Changing passwords and other customization
Other resources
- Ubuntu-Med FAQ
- Kubuntuguide
- Ubuntuguide
- Ubuntu Doctors Guild
- Vincent Mazzarella, MD is a surgeon in Northern California, USA. He is a creator of Ubuntu-Med and an editor of Ubuntu Doctors Guild, Ubuntuguide, and Kubuntuguide.


text:
While you were sleeping: Two win gold in women's Alpine skiing, goalie Jonathan Quick will start for Team USA hockey
*Sharing is caring? In a rare Alpine skiing tie, Tina Maze of Slovenia (who also happens to be a pop star) and Dominique Gisin of Switzerland both won Olympic gold in the women's downhill. The pair's time: 1 minute, 41.57 seconds. Lara Gut of Switzerland, who won the bronze, was 0.10 behind.
The last tie in Olympic skiing happened in men's super-G at the 1998 Nagano Games.
*South Korea's Lee Sang-hwa lived up to her stellar reputation in women's 500-meter speedskating and scored the gold. Her fastest time of 37.28 seconds broke the Olympic record.
*Goalie Jonathan Quick of the Los Angeles Kings will start for the U.S. against Slovakia – and potentially the rest of the Sochi Olympics men's ice hockey tournament.
*In curling news: Norway and China remained undeafeated; the U.S. finally won a game. The Norwegian pants continued to be awesome.
*NBC's Matt Lauer replaced longtime Olympic anchor Bob Costas, whose poor eyes were getting pinker than this German figure skater's now-viral bodysuit:

subset: commoncrawl


text:
William Saint
(male) Probably the most successful of all the Old French names of Germanic origin that were introduced to England by the Normans. It is derived from Germanic wil 'will, desire' + helm 'helmet, protection'. The fact that it was borne by the Conqueror himself does not seem to have inhibited its favour with the 'conquered' population: in the first century after the Conquest it was the commonest male name of all, and not only among the Normans. In the later Middle Ages it was overtaken by John, but continued to run second to that name until the 20th century, when the picture became more fragmented.
Courtesy Of Online Sources


text:
|Here's a meatless Phase One Breakfast casserole that's one of my favorites!
(We're doing a Month of Daily Phase One recipes during January, and today I'm featuring this Roasted Green Bell Pepper and Roasted Tomato Breakfast Casserole which is one of my favorites.)
This is another one of those recipes that happened when I was just making something to eat, and then it turned out so well I decided to make it again and take photos for the blog. It was inspired by one of those big plastic containers of cherry tomatoes from Costco. It seems I can rarely manage to use all the tomatoes before they start to shrivel, and when I was thinking about what to do with slightly-shriveled cherry tomatoes I hit on the idea of roasting them for a breakfast casserole. There was a green bell pepper in the fridge that was begging to go into this, and adding some dried oregano and feta cheese gave it a bit of Greek flavor. I've made a lot of this type of breakfast casserole, and even written a how-to post on making South Beach friendly breakfast casseroles, and I think this combination is one of the best ones I've come up with (so far!)
Sprinkle crumbled Feta cheese over the roasted tomatoes and bell pepper.
Roasted Green Bell Pepper and Roasted Tomato Breakfast Casserole with Feta and Oregano
(Makes 4-6 servings, recipe created by Kalyn when she had a surplus of cherry tomatoes that needed to be used!)
1 green bell pepper, seeds removed and cut into thin strips
olive oil, for brushing baking pan (or use nonstick spray)
1/2 tsp. dried oregano (optional, but good)
1 cup cherry tomatoes, sliced in half
3/4 cup crumbled Feta cheese
10 eggs
1 tsp. Spike Seasoning
salt and fresh ground black pepper for seasoning eggs
Preheat oven or toaster oven to 375F/190C. (I was making this in the summer, so I used a toaster oven.) Brush 9" x 9" (or similar size) baking dish with olive oil, including the sides, or spray with nonstick spray.
Cut out seeds from green pepper, then cut into short thin slices. Put green pepper into baking dish, sprinkle dried oregano over, and roast for 10 minutes.
While green pepper roasts, cut cherry tomatoes in half. Break eggs into a bowl and beat until egg yolks and whites are well combined. Season eggs with Spike Seasoning, salt, and fresh ground black pepper.
After peppers roast for 10 minutes, add cut cherry tomatoes and stir to combine. Put dish back in oven and roast 15 minutes more, or until tomatoes start to look slightly shriveled.
Sprinkle Feta cheese over roasted peppers and tomatoes, then pour beaten eggs over. (I used a fork to stir slightly so the roasted peppers and tomatoes were evenly distributed in the eggs.) Return pan to oven and cook for 25-28 minutes, or until the top is lightly browned and eggs are set. (It will puff up a bit when it cooks, but after it cools for a few minutes the casserole will settle.) Serve hot.
This is good served with a dollop of low-fat sour cream or plain yogurt. This casserole can be kept in the fridge and reheated in a microwave, but be careful not to microwave too long or the eggs will get rubbery.
More Ideas for Breakfast Casseroles:
(Recipes from other blogs may not always be South Beach Diet friendly; check ingredients.)
Breakfast Casserole with Spinach, Leeks, Cottage Cheese and Goat Cheese from Kalyn's Kitchen
Broccoli Cheese Breakfast Casserole from Kalyn's Kitchen
Breakfast Casserole with Sweet Italian Sausage, Mushrooms, and Cheese from Kalyn's Kitchen
Zucchini Breakfast Casserole from Simply Recipes
Ham and Cheese Breakfast Casserole from The Kitchn
Slow Cooker Ultimate Breakfast Casserole from A Year of Slow Cooking
Buffet Breakfast Casserole from Recipe Girl
Farmer's Breakfast Casserole with Low-Fat Mozzarella Cheese from In Good Taste
(Want even more recipes? I find these recipes from other blogs using Food Blog Search.)


text:
Walmart shelves cleared during EBT glitch
MANSFIELD, LA (KSLA) - Shelves in Walmart stores in Springhill and Mansfield, LA were reportedly cleared Saturday night, when the stores allowed purchases on EBT cards even though they were not showing limits.
The chaos that followed ultimately required intervention from local police, and left behind numerous carts filled to overflowing, apparently abandoned when the glitch-spurred shopping frenzy ended.
KSLA News 12 Shreveport, Louisiana News Weather
Springhill Police Chief Will Lynd confirms they were called in to help the employees at Walmart because there were so many people clearing off the shelves. He says Walmart was so packed, "It was worse than any black Friday" that he's ever seen.


text:
This is the diamond-tip microdermabrasion system that uses gentle yet powerful suction to deeply cleanse pores and leave skin smooth and rejuvenated. Unlike microdermabrasion kits that use crystals or peels, this system creates no messy residue and is safe for use all over the face, including the delicate under-eye region. The natural diamond-tipped wand exfoliates the epidermis while simultaneously vacuuming up built-up dirt, makeup, and other impurities. In only three 10-minute treatments a week, dead skin cells are extracted while collagen and elastin are replenished, resulting in a more even skin tone and reducing the appearance of enlarged pores, age spots, and wrinkles. Users can select automatic programs that target cheeks, lips, forehead, eyes, and nose with one of three levels of intensity, or manually set the device to their preference. An LCD panel shows the program selected and elapsed time, and the unit's integral case has a flip-up full-face 10" x 6" mirror. Includes a year's supply of 100 replacement filters. Plugs into AC. 11 1/2" L x 9" W x 3" D. (3 lbs.)
Lifetime Guarantee
The Pore Cleaning Microdermabrasion System comes with The Hammacher Schlemmer Lifetime Guarantee. If this product ever disappoints you, for any reason, you may return your Hammacher Schlemmer purchase for exchange, credit, or refund.
Should you have any questions, we are available seven days a week (8:00 am – midnight EST). Please call 1-800-321-1484 to speak with a specialist or email us at firstname.lastname@example.com to receive a response within three business hours or less.
Shipping charges noted in parentheses apply in addition to our standard shipping & service.
We're sorry, but gift wrap is not available. Please call 1-800-395-7006 for Premium or Express delivery rates.
Oversized items scheduled for expedited delivery (Premium or Express) may incur additional shipping and services charges because of their unusual size. Please call 1-800-321-1484 for an estimate of S&S charges. International callers, please call 1-513-860-3397.
We're sorry, but gift wrap is not available for oversized items.
Shipped via truck and may require customer assistance upon delivery. You will be contacted to make an appointment for delivery.
We're sorry, but gift wrap and gift cards are not available.
GST still applies and will be charged upon processing. For complete shipping & service charges please call Customer Service at 1-800-321-1484.
May we recommend:
(based on 5 reviews)
Ratings Distribution
5 Stars
4 Stars
3 Stars
2 Stars
1 Stars
of respondents would recommend this to a friend.
Best Uses
Reviewed by 5 customers
Displaying reviews 1-5
Back to top
(25 of 27 customers found this review helpful)
Remarkable difference!!!
By Radiant skin again!
from Victoria, BC, Canada
All my life people have told me I look years younger than my age (55 now), but for the past year or two I have been complaining to my hubby of 23 years about my "crocodile" facial skin. No mater what other skin scrubs that I tried, or face creams that I used, I could not make this problem go away. That has all changed in just a few short weeks. I was stunned at how much "debris" there was the first time that I used The Pore Cleaning Microdermabrasion System. It took me about 20 minutes of using the machine to feel a noticeable difference just with my finger tips. I tried it again about two days later, but that seems to be a bit much for my sensitive and very fair skin, so about once a week does the job for me. Now all of those high quality moisturizers are finally doing their job too. My face no longer feels like "crocodile" skin, and I love the way it looks and feels, with or without make-up! To the person who had trouble with the diamond tip wearing down quickly, don't try to clean it in any way except for an ultrasonic cleaner. Mind looked "gunky" too after each treatment, and after a short 2 minute bath in my ultrasonic cleaner it looked unused! I love this machine and hope that Hammacher Schlemmer never stops selling it. I've already taken the precaution of purchasing two extra diamond tips and two additional packages of filters. At a facial per week I should be set for the next 5.77 years as far as filters go! Figure out how much it would cost you at a spa to have a weekly facial for 5.77 years and you'll quickly see what a bargain this wonderful machine truly is!
Bottom Line Yes, I would recommend this to a friend
Was this review helpful? Yes / No
- flag this review
(22 of 22 customers found this review helpful)
Way better than Nu Brilliance
By healthy living
from Dallas, TX
So far the microderm md has been great, I have been using it 2 to 3 times per week and notice a huge difference in my skin. The suction is strong and the diamond tip really leaves my skin so smooth afterwards.I'm changing out the filter after every treatment and seeing the GUNK that comes out every time let's me know its working!!Had a NuBrilliance machine before and it stopped working after only a few uses, this is way better made and works so much better.
(13 of 15 customers found this review helpful)
Good, but not sure it is worth the cost
By Stevienicks686
from East Butler ,Pa
I have had this for 10 days now.The first day I got it,I used it three times. WOW got the old skin off. I now use it 2 times a week and the head is not working as well as it did. The attachment to get rid of blackheads did nothing for me. If you have very dry skin like I do, it will help get it off, But that's about all. Did a better job than a facial scrub. costly for what it did for me.
Bottom Line No, I would not recommend this to a friend
(13 of 14 customers found this review helpful)
My skin feels softer
By Gadget Queen
from Maryland
I've only had the item for about two weeks. My skin feels softer. It comes with the microderm diamond tip as well as a suction tip. I've used both tips twice (alternating). With routine use, I hope to see even skin within 6 months.
(7 of 7 customers found this review helpful)
Best one ever!!!
By philly
from Lehi, Utah
I have owned several dermabrasion units and this is the best by far. Tips last much longer than other units and does a great job on the skin.
COPYRIGHT © 2017 HAMMACHER SCHLEMMER & COMPANY, INC. ALL RIGHTS RESERVED. W108147 E. 57th ST • NEW YORK, NY • 10022 • 1-800-_321-1484


text:
Florida City cites woman ... for living off-grid
(NEWSER) – A Florida woman is in a legal fight with the city of Cape Coral for the right to live without municipal water or electricity—off the grid, as she puts it to WBBH-TV. The city just played a trump card, though: It capped the sewer at the house of 50-something Robin Speronis, so now she'll have to figure out a way to dispose of her waste by other means, reports the News-Press. She vows to do so, and she similarly vows to fight a judge's order to hook up to the city water supply.
NBC-2.com WBBH News for Fort Myers, Cape Coral
Read the full story on Newser.com


text:
Car Payment Calculator
Find out what your monthly car payments will be using our car payment calculator. Enter your expected car price and other assumptions, and we'll tell you what the estimated monthly payment will be. You can then apply for a car loan in minutes.
Our calculators are intended to produce rough estimates provided solely for informational purposes. You should not take action based on the information provided through this calculator alone. When available, we recommend that you use interest rate information provided to you by your dealer or lender. Average price paid values are national averages provided by TrueCar.com.
How to Buy a Car
Get helpful tips on car financing, including advice on how to get a car loan, whether to buy or lease and how to negotiate for a car.
Get guaranteed savings with our Best Price Program. Shoppers have seen average savings of $3,279 off MSRP. Learn More »
Car Buying Tips, News and Features
- 2018 Audi Lineup Changes
- Cheapest Ways to Drive an Electric Car
- 8 Best Midsize Sedans
- All-New 2018 BMW X3: What You Need to Know
- 2017 Jeep Grand Cherokee SRT: What You Need to Know
- 10 SUVs Arriving in 2018
- 2017 Jaguar F-Type R: What You Need to Know
- 2017 Toyota 86 vs. 2017 Subaru BRZ
- How Do J.D. Power Reliability Ratings Work?
Select a car to get pricing information:
The avg. price paid value is based on the national average from TrueCar.com and includes the destination fee and the regional advertising fee. It does not include dealer installed accessories, applicable tax, title, licensing, and documentation fees, other state and governmental charges and/or fees, dealer-locate fees for out-of-stock vehicles, and any other charges and/or fees allowed by law.


text:
Goodell Defends Ray Rice Suspension
(Canton, OH) -- NFL Commissioner Roger Goodell is defending a two-game suspension for Baltimore Ravens running back Ray Rice. Goodell says Rice was suspended despite law enforcement not imposing any discipline after he was charged with assaulting his then-fiancee' at an Atlantic City casino in February.
The two were married a few weeks later. Despite criticism, Goodell dismissed the idea that Rice's ban was too short compared to drug-related suspensions, which he attributed to the league's collective bargaining agreement. Rice issued a public apology for his actions on Thursday. He avoided prosecution by entering into a pre-trial intervention.


text:
School violence sends 90K kids to ER every year
(NEWSER) – "Intentional" injuries received at school send some 90,000 kids to the ER each year, a new study shows. There's only been a slight decrease in that figure over the past decade, in what researchers see as a disappointment. "With so much emphasis on school safety and bullying now, we expected a bigger decline," study co-author Siraj Amanullah tells NBC News. Even more worrying: The figure could be misleadingly low. Kids underreport bullying because authorities don't take much action, Amanullah says.


text:
Lollapalooza is officially sold out!
Listen to Lollapalooza Radio on iHeartradio
Lollapalooza 2014 is officially sold out!
General Admission and VIP three-day passes, as well as single day passes to the event quickly sold out in record time. Platinum three-day passes and travel packages are still available at Lollapalooza.com.
Lollapalooza teamed up with iHeartRadio to reveal this year's incredible lineup Wednesday morning. Eminem, Outkast, Kings of Leon, Arctic Monkeys, and Skrillex are all among the headliners.
[Lollapalooza 2014 lineup revealed!]
Lollapalooza gets under way at Chicago's Grant Park on August 1st.
Get excited for Lolla 2014 by reliving moments from the 2013 festival below.
Photo Credit Getty Images


text:
Michele Bachmann Investigation Gets House Ethics Committee Extension
The House Ethics Committee announced Wednesday that it is extending its investigation into alleged campaign finance irregularities by Rep. Michele Bachmann (R-MN). At issue is whether the congresswoman's 2012 presidential campaign used money from her political action committee to pay staff and whether she used campaign staff and resources on her book tour.
The Daily Beast has exclusively obtained a copy of the original complaint against Bachmann, filed in February with the Office of Congressional Ethics by former campaign staffer Peter Waldron. Waldron, who recently released an e-book,Bachmannistan, about Bachmann's presidential campaign, makes five allegations against the four-term congresswoman, who said in May that she will not seek reelection in 2014.
In the complaint, Waldron alleges that the Bachmann campaign funneled money to C&M Strategies, a firm owned by Bachmann's longtime direct-mail consultant, Guy Short, to pay Iowa state Sen. Kent Sorenson an illicit six-figure salary. According to the complaint, "The apparent reasons for the sleight of hand payments were possibly to avoid a violation of IA Senate Rule 6 that prohibits State Senators from working for Presidential Campaigns in Iowa and/or to avoid creditors, [including] the IRS, owed money by Senator Sorenson." Waldron also accuses Short, who held the title of national political director in the Bachmann campaign, of violating Federal Election Commission rules by receiving money from the Minnesota congresswoman's political action committee while serving as full-time staff on her campaign.
Bachmann's presidential campaign also allegedly worked on the book tour for her 2011 memoir, Core of Conviction, says Waldron in the complaint. He supplies detailed emails from November 2011 that appear to direct campaign staff to assist at book signings across Iowa. In one email, campaign consultant Eric Woolson tells staff:
"All—the Mason city event was a disaster. Please get in touch with anyone you know who might turn out for the following events and remind them about the events. It'd be great if they buy books but, remember, not everyone does or not everyone goes to these events thinking they're going to buy. WE NEED BODIES AT THESE EVENTS TODAY AND TOMORROW!"
Read The Full Article On The Daily Beast
More articles from The Daily Beast:
- Conspiracy Theories Haunt Benghazi Anniversary
- Americans Join Syrian Jihad, Sparking U.S. Intelligence Fears
- The Rise of the New New Left
© 2013 Newsweek/Daily Beast Company LLC


text:
Arcadia, CA, July 1 -- HRTV (R), the Network for Horse Sports, will serve as a media conduit in assisting the financial relief efforts for the Oklahoma horse community that was profoundly affected by the recent devastating tornadoes in the region.
Working cooperatively with two equine associations in Oklahoma -- the Thoroughbred Racing Association of Oklahoma (TRAO), and the Oklahoma Quarter Horse Racing Association (OQHRA) -- HRTV has pledged its support in helping to solicit donations to both outlets.
HRTV producer/reporter Jeremy Lyverse made an initial trip to the hard-hit region, chronicling the extensive damage, and has returned from a second follow-up trip with additional video (available on www.tvg2.com) that highlight the rescues, rehabilitation and reunions which have taken place in recent days.
The network's website, hrtv.com, offers a landing page and "click through" to either association in soliciting donations.
About HRTV
HRTV, The Network for Horse Sports, is a television-based multimedia network dedicated to equine sports. HRTV's programming features horseracing from top U.S. and international racetracks, as well as a wide range of world-class English and Western horse competitions, news, original programming and award-winning documentaries covering the world of horse sports. The live stream of HRTV is available on a subscription basis to high-speed Internet users worldwide at www.tvg2.com <http://www.tvg2.com/> In the U.S., the HRTV television network is available via telco, cable and satellite in over 19 million homes.
« Back
Sign up to receive frequent updates and promotions from TVG2
By clicking "Submit", you agree to the Terms of Use for the TVG2.com website, which includes the TVG2 Privacy Policy.
Join friends of TVG2 in the social world and share updates, opinions and news!


text:
PHOTO: Lady Gaga arrives to AMAs on a white horse!
Listen to Lady Gaga on iHeartRadio
Lady Gaga arrived to the AMA red carpet in a very big way. Mother Monster majestically entered the red carpet on a white horse ... or at least two guys moving a faux white horse, anyway.
[PHOTOS: American Music Awards - Red Carpet]
Lady G was dressed in a gorgeous lavender Versace (of course!) gown - she is the new face of Versace after all.
On the red carpet, she gushed about her new gig with the legendary designer and explained that Donatella was always so supportive of her career - which must explain why one of her songs on her newest album ARTPOP is called "Donatella!"
Photo Credit Getty Images


text:
Rent Day Zero: the Recovered Diary of a Human Star Being 1st edition today, or search our site for other textbooks by Brad Johnson. Every textbook comes with a 21-day "Any Reason" guarantee. Published by CreateSpace Independent Publishing Platform.
Need help ASAP? We have you covered with 24/7 instant online tutoring. Connect with one of our tutors now.


text:
01527 66646
01453 766789
07775 943966
07578 619948
All fields marked must be filled in
300 characters left
The contact details you've provided above will be sent to the advertiser, and by providing these details you consent to Exchange and Mart passing these details on to the advertiser for you to be contacted by these means. Messages will be screened for inappropriate content, and will be stopped if found to be the case.
Shortlist Advert
This advert has been added to your shortlist
Share this ad
272 characters left
Please enter a name for your search e.g. Fiestas up to £5k
Please login or register after saving your search to receive email updates.
© 2017 Exchange Enterprises, Newsquest Media Group. All rights reserved. Your use of this site is subject to our terms & conditions of use and our privacy policy.


text:
'Duck Dynasty' Family Stands By Phil Robertson
The "Duck Dynasty" family is flocking to Phil Robertson's side. The patriarch has been suspended by A&E in the wake of controversial comments he made in a magazine interview that some have deemed homophobic and racist. The Robertsons say in a statement that Phil's "unfiltered comments" may have been "coarse," but his "beliefs are grounded in the teachings of the Bible." They also call the 67-year-old a "Godly man" who would "never incite or encourage hate." As for Phil's indefinite hiatus from the "Duck Dynasty" TV show, the family says they are disappointed that he was suspended for expressing his faith. They say they can't imagine the show going forward without him, and are currently in discussions with A&E to see what that means for the future of "Duck Dynasty."
Meanwhile, a 2010 video has surfaced showing Phil Robertson speaking about the "sin" of same-sex relationships at a church in Pennsylvania. In the YouTube clip, he argues that gay men and women are heartless, ruthless, and "full of murder."


text:
A cat wanders into an empty kitchen and ambles toward a can of Friskies cat food. The lid suddenly pops off, sending magic glowing swirls all over the room. The cat watches them, mesmerized, because she's clearly stoned out of her mind.
Then a mysterious portal opens up. Right there in the kitchen. Because that makes sense.
The cat leaps through the portal, and finds herself in a brightly colored fantasy land. She meanders through this newfound wonderland, marvelling at her surroundings.
And even though it's only a 60-second commercial, this stoned cat manages to have a complete adventure, by land and by sea.
Her journey eventually comes full circle, and a new portal leads the cat home, where she scarfs down some brown mush in a bowl. I'm not sure what the commercial is getting at, unless they're implying that Friskies cat food is laced with PCP.
Seeing pet food commercials always makes me miss my cat Lola, this commercial in particular. As a kitten Lola slurped up some antifreeze and was never quite the same. She's dumb as a cinderblock, but I love her, and I always look forward to seeing her when I go home for the holidays.
Last time I was home, I brought her a little mouse toy full of catnip. I'd never given her catnip before because I was afraid it might exacerbate her brain damage and send her into a kitty coma, but I figured it probably couldn't hurt just this once. I pulled the toy out of my pocket and tossed it on the ground in front of her.
After that she picked up the mouse in her teeth, carried over to the couch, and rolled around for several minutes in a hazy delirium. Then she slid off the couch and laid there for another couple minutes before falling asleep for the rest of the morning.
"No more drugs for you, cat," I said, and put the mouse on top of the fridge.
Later that afternoon I let Lola outside for a bit. She usually doesn't go farther than the edge of the deck, so I figured she couldn't get into much trouble. I sat down to do some light reading, but before long I was interrupted by a commotion in the backyard.
There's a creek behind my house, and from time to time we get ducks crossing through. Usually the ducks aren't so noisy, so I could tell something was up. I peered through the blinds but couldn't see anything, so I got up and walked over to the sliding doors. I pulled them open, and there was Lola, dragging a dead duck across the deck. She had somehow managed to kill a whole duck. She looked up at me, proud as could be, blood and feathers scattered behind her.
"Oh my god, Lola," I said.
She only stared at me, as if to reply, "What, this old thing? You act like you've never killed a duck with your bare hands before. Pussy." Fat and dumb though she may be, I still find myself surprised at what an efficient killer she is.
Though vicious and bloodthirsty, Lola spends the bulk of her day seeking out warm places to sleep. Her favorite place to snooze is on fresh laundry, preferably laundry that is still in the dryer. It's gotten to the point where I have to be careful she isn't around when I take my clothes out, because she will rocket past me and launch herself into the machine.
When no laundry can be found, Lola will make do with what she can, though she is rarely successful in finding comfortable nap spots. She'll attempt to sleep in anything, be it cereal boxes or crockpots. When she doesn't fit, she'll glare at me like it's MY fault she's too fat for this world (nevermind the fact that she has an expensive cat bed that she refuses to go near).
When she exhausts all possible nap spots, Lola will inevitably crawl under the carpet and lie in wait for me to walk by, at which point she'll sink her claws into my ankle as punishment for not accomodating her totally reasonable fetish for napping in awkward places.
But of course, the moment I stop paying attention to her is when she decides she must have my undivided attention.
Because she owns me, and we both know it.


text:
Dwayne Wade takes time out from playoffs to surprise Florida teen at her senior prom
It started as an online plea on YouTube, with Coral Gables (Fla.) Archbishop Carroll High senior Nicole Muxo recording an elaborate video asking Miami Heat star Dwayne Wade to take her to the prom.
Wade never officially responded, and the media, general public and Muxo herself assumed that the plea had fallen on deaf ears. As it turns out, it hadn't, and Muxo and her surprising date stole the show at the Archbishop Carroll senior prom.
Apparently, Wade had dragged out his response because he wanted to see how the Heat's playoffs were progressing before committing to spend an evening not competing in the middle of a game. After Miami knocked off Chicago with the Knicks and Pacers still locked in a tense series, Wade decided he could spare part of an evening to surprise a well-deserving teen.
As reported by the Miami Herald and CBS Miami, Wade made his appearance with plenty of fitting flare, as well. The former NBA Finals MVP called Muxo to send her happy wishes for her prom -- which she had agreed to attend with fellow Archbishop Carroll student Laurent Chaumin in Wade's stead -- but then walked through the door 10 minutes later to surprise her.


text:
AUDIO: LeBron James is trying his hand at rapping
Miami Heat superstar LeBron James has proven his mastery of the NBA time and time again, from his statistical dominance to his recent excellent performances in the pressure-filled postseason. It sometimes seems that there is nothing James can't do on the court. Whether it involves guarding a point guard, throwing a skip pass to an open shooter, or scoring himself, LeBron will do it well.
LeBron's success on the court has always gone together with a desire to assert himself in other areas of celebrity. Now that he carries the glow of championship basketball, those other forays into the world of entertainment might become a little more possible, as well as widely accepted.
So, it appears that James is working on at least one track of rapping. In two short videos posted to Instagram on Tuesday, LeBron showed off his flow over the beat from Jay-Z and Kanye West's "N----- in Paris" (NSFW language) off their "Watch the Throne" album. Listen for yourself after the jump (viaFor The Win).
First, here's LeBron introducing himself as "the kid King James" and giving a "shout out to the Four Horsemen," which could be a reference I am too uncool to place.


text:
Vintage Hotel Small Rectangular Tray
$44 Final Sale
$35 Member
In the classic tradition of vintage silver serveware, our reproductions were inspired by those in grand European hotels, restaurants, railways and steamships. Antiqued to assume the genteel patina of age, their blackened brass construction lends them prized durability and longevity.
Show Details +
- 17" x 13"
Shown in oil-rubbed bronze.
Vintage Hotel Small Rectangular Tray - 17" x 13"
$44 Final Sale
$35 Member


text:
WATCH: Taylor Swift makes surprise appearance at Ed Sheeran concert
Listen to Taylor Swift on iHeartRadio | Listen to Ed Sheeran on iHeartRadio
Ed Sheeran is thanking country superstar Taylor Swift for the months they spent on the road together on her North American "Red" tour.
The British singer-songwriter invited Taylor onstage during his last night at Madison Square Garden Friday night. Ed gave the star a heartfelt thank-you for the experience, before introducing her as his "good friend."
Taylor came out wearing a t-shirt reading "I Love Ed," and two performed their duet "Everything Has Changed." Ed wore his own "I Love NY" t-shirt, which was a fitting choice for debuting another new song called "New York."
A new album from Ed is expected out in early 2014.
Photo Credit Getty Images


text:
More Information
For parking information and bus schedules, see Transportation and Parking Services.
Getting to Burlington
From Montreal: 90 miles
From Boston: 220 miles
From New York City: 290 miles
From Albany, NY: 145 miles
By Air: Burlington International Airport is located 3.5 miles from campus.
By Bus: Vermont Transit Bus Lines and Megabus.
By Train: Amtrak travels to Essex Junction — just 15 minutes from campus.


text:
James Holmes Will Be Bolted Down in Court
(NEWSER) – While James Holmes is tried over the Aurora, Colorado massacre, he'll be wearing a harness and a cable attached to the floor, a judge has ruled. Despite defense concerns it could bias the jury, the precaution is necessary because Holmes poses a threat, said Judge Carlos Samour Jr., per Reuters. The cable will look just like the computer cables running off the defense table, Samour said. Previous court appearances have seen Holmes, who haspleaded insanity, handcuffed and restrained. Meanwhile, Samour ruled that the jury in what's expected to be a four-month trial need not be sequestered. It's "an extremely rare procedure" that's costly and difficult, he said. The trial is set to begin in February.


text:
BYOD and Windows 7 Migration are the Questions. Is Desktop as a Service the Answer?
Welcome or not, the future of Desktop Management is here.
Today's desktop takes many forms – whether it's the physical device or its environment – fat, thin, zero, mobile or virtual. So, where's the desktop going next and why?
DaaS, or cloud-hosted virtual desktops, is receiving wide recognition for its promise of improved device and network security, infrastructure agility and end-user support – all at little or no incremental cost.
If you have questions about DaaS, you're not alone. Few managers know enough about the business requirements, available operating systems, Microsoft licensing and TCO impact. That may explain why roughly one-half of organizations have yet to embrace any form of desktop virtualization. So now is the time to move.
In this webinar Pomeroy's virtualization experts will cut through the hype and myths to clear up the confusion over Desktop as a Service:
- What are the clear advantages and disadvantages of Desktop as a
Service? What do you need to know now?
- Why the urgency? How are BYOD and Win 7 Migrations driving cloud
-hosted virtual desktops?
- Market leader lessons learned – what top organizations discovered
that changed their thinking about desktop virtualization.
Why participate? This webcast is the perfect opportunity for IT managers to better understand the requirements, use cases, risks and benefits of DaaS to help frame their own decision-making. From the operational to the technical, attendees will develop a clearer understanding how DaaS may make the most business sense for their individual use cases.
Whether your organization is wrestling with BYOD and security, or how to control increasing desktop management complexity and costs, this webcast may be the best one hour of your time you spend this month.
Register now.


text:
IC-496(19) -- July 10, 2006
Dry weather: Worried about high nitrates in forages?
Stephen Barnhart gives tips for managing nitrates.
|< Previous Issue
|Next Issue >
Some of the articles contain pesticide recommendations that are subject to change at any time. The recommendations provided in these materials should be used only as a guide. It is always the pesticide applicator's responsibility, by law, to read and follow all current label directions for the specific pesticide being used. Due to constantly changing labels and product registration, some of the recommendations given in these writings may no longer be legal by the time you read them. If any information in these recommendations disagrees with the label, the recommendation must be disregarded. No endorsement is intended for products mentioned, nor is criticism meant for products not mentioned. The article's author, Iowa State University and Iowa State University Extension assume no liability resulting from the use of these recommendations.


text:
'Duck Dynasty's' Willie Robertson to attend State Of The Union
"Duck Dynasty's" Willie Robertson will be representing his reality TV family at tonight's State of the Union address.
The Duck Commander CEO will be the guest of Louisiana Congressman Vance McAllister.
Deadline.com calls Willie's appearance at tonight's address a return of favor of sorts. It follows the controversy over the inflammatory comments Willie's dad, Phil Robertson, made about gays and African-Americans in an interview with "GQ" last month.
Pre-controversy, Republicans credited the "Duck Dynasty" clan with helping them pull off a political upset in Louisiana that landed McAllister in office last November.
"Duck Dynasty" returned to A&E earlier this month for its fifth season. Ratings were down from its fourth season premiere and the program continues to show a downward trend.
Photo Credit Getty Images


text:
Writer claims online searches for pressure cookers and backpacks earned her a visit from the feds
Professional writer Michele Catalano searched online Tuesday for information on pressure cookers while (at around the same time) her husband was Googling backpacks.
The next morning, she claims they got a visit from a joint terrorism task force.
"The composition of such task forces depend on the region of the country," Philip Bump writes in The Atlantic, "but, as we outlined after the Boston bombings, include a variety of federal agencies. Among them: the FBI and Homeland Security."
Catalano describes the scene:
[T]hey were peppering my husband with questions. Where is he from? Where are his parents from? They asked about me, where was I, where do I work, where do my parents live. Do you have any bombs, they asked. Do you own a pressure cooker? My husband said no, but we have a rice cooker. Can you make a bomb with that? My husband said no, my wife uses it to make quinoa. What the hell is quinoa, they asked. …
Have you ever looked up how to make a pressure cooker bomb? My husband, ever the oppositional kind, asked them if they themselves weren't curious as to how a pressure cooker bomb works, if they ever looked it up. Two of them admitted they did.
Obviously, this raises a serious question: how did the feds know what Catalano and her husband were looking for online?
Remember, since the beginning of the NSA scandal, the U.S. government has fiercely denied claims that they collect data on American citizens.
The U.S. government is not "allowed to spy on Americans – although there are exceptions of which it takes advantage," the Atlantic notes. "Its PRISM program, under which it collects internet content, does not include information from Americans unless those Americans are connected to terror suspects by no more than two other people."
So how did the so-called joint terrorism task force know about Catalano?
"It's possible that one of the two of them is tangentially linked to a foreign terror suspect, allowing the government to review their internet activity," the report continues.
"After all, that 'no more than two other people' ends up covering millions of people. Or perhaps the NSA, as part of its routine collection of as much internet traffic as it can, automatically flags things like Google searches for 'pressure cooker' and 'backpack' and passes on anything it finds to the FBI," it adds.