Fix broken links, use https:// where available.
[wiki] / examples / osx-install.mdwn
index 4866914..adbf853 100644 (file)
@@ -29,7 +29,7 @@ Macports is recommended because it does not modify your system files. It keeps i
 XCode is a required prerequisite. It must be installed before installing Macports.
 Download and install the Macports system from MacForge.
 
-* [XCode](http://developer.apple.com/technology/Xcode.html) (requires
+* [XCode](https://developer.apple.com/xcode/) (requires
   free online ADC Membership); it can also be obtained from original
   OSX installation DVD
 * [Macports](http://www.macports.org/install.php)
@@ -40,7 +40,7 @@ Update the ports system and ports list.
     sudo port selfupdate
     sudo port sync
 
-This command will install tinc and all the necessary dependancies.
+This command will install tinc and all the necessary dependencies.
 
     sudo port install tinc
 
@@ -49,6 +49,66 @@ Configuration files are located in /opt/local/etc/tinc.
 Tinc can now be configured and executed.
 
 
+### Start tinc automatically on system boot
+
+[launchd](https://en.wikipedia.org/wiki/Launchd) is a system for monitoring services and make sure services are started if certain conditions are met. This system is available on OS X 10.5 and later versions.
+
+To use launchd, you have to create a property-list file for tinc and put it under /Library/LaunchDaemons/
+
+The following example is a plist file for the tinc network name: myvpn
+
+*/Library/LaunchDaemons/myvpn.tinc.plist*:
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+    <plist version="1.0">
+    <dict>
+       <key>KeepAlive</key>
+       <true/>
+       <key>Label</key>
+       <string>tinc.myvpn</string>
+       <key>ProgramArguments</key>
+       <array>
+               <string>/opt/local/tinc/sbin/tincd</string>
+               <string>-n</string>
+               <string>myvpn</string>
+               <string>-D</string>
+       </array>
+    </dict>
+    </plist>
+
+This will configure tincd to start the myvpn configuration in the foreground (-D). If tincd is started as background daemon, launchd will not function correctly with tinc. Launchd will directly start tincd if this file is found. The <key>KeepAlive</key> element will ensure that tincd is always running, and to be restarted if it stops. To stop tincd, use the *launchctl* command. Some commands to remember are:
+
+    launchctl unload -w /Library/LaunchDaemons/myvpn.tinc.plist
+
+This adds a *disabled* key to the file and stops tincd. The disabled key ensure that launchd will not start tincd anymore. The inverse operation is:
+
+    launchctl load -w /Library/LaunchDaemons/myvpn.tinc.plist
+
+This removes the *disabled* key from the file and starts tincd.
+
+To stop tinc:
+
+    launchctl stop tinc.myvpn
+
+To list all services monitored by launchd:
+
+    launchctl list
+
+If tinc has been configured with launchd, you will see tinc.myvpn listed with a process id.
+
+
+#### Handle standby and other network interrupts
+
+Tinc automatically tries to reconnect, but this takes time and the longer there
+is no connection, the longer tinc waits to try and reconnect again. A small
+tool is available at https://gitorious.org/tinc-on-osx/networknotify which will
+signal tinc to reconnect when the network connection is available.  It uses OS
+X its network reachability framework and can be build using Xcode.
+
+---
+
+
 ### Alternative Installation Methods
 
 There are two alternative methods of getting tinc:
@@ -60,14 +120,14 @@ getting tinc to work.
 
 In the case of compiling tinc the following is required:
 
-* [XCode](http://developer.apple.com/technology/Xcode.html)
+* [XCode](https://developer.apple.com/xcode/)
 * [LZO libraries](http://www.oberhumer.com/opensource/lzo/)
 
 Before starting, create a new folder `tmp` in your home directory
 and enter it (it can be any other location). From Terminal level it
 can be done in the following way:
 
-[[!img examples/osx-tmp.png]]
+[[!img examples/osx/tmp.png]]
 
 ##### LZO
   
@@ -106,12 +166,6 @@ Enter the directory, and execute configure, make, make install:
 
 Having installed Tinc, you can move to the [next section](#config).
 
-#### Download it
-
-Link: [tincd-1.0.9.zip](/packages/osx/tincd-1.0.9.zip). Please note that this archieve
-provides only the executable and does not include any manual. Once
-downloaded, place the extracted executable into `/usr/sbin/`.
-
 ### Configuring tinc
 
 Tinc on OS X looks for configuration files in `/usr/etc/tinc`. In
@@ -181,5 +235,6 @@ the two existing files (if applicable).
 
 * * * * *
 
+- Mike Bentzen (mike (at) bentzen . com . au)
 - Grzegorz Dymarek (gd58 (at) alumni . st-andrews . ac . uk)
-- Mike Bentzen (mike (@) goodlook . com . au)
+- wizztick