diff --git a/CMakeLists.txt b/CMakeLists.txt
index aca16cc5275cbcfb3f1a7d7f507873e2f7685d47..ff2018bd395c0b99cd3d96ac4a91752db0397074 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,3 +69,17 @@ install(DIRECTORY ip6/
 install(FILES eic_ip6.xml
     DESTINATION share/${PROJECT_NAME}/
     )
+
+#-----------------------------------------------------------------------------------
+# Configure and install beamline setup script
+#
+execute_process(
+  COMMAND git rev-parse --abbrev-ref HEAD
+  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+  OUTPUT_VARIABLE GIT_BRANCH
+  OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+configure_file(templates/setup.sh.in ${CMAKE_CURRENT_BINARY_DIR}/setup.sh @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/setup.sh
+    DESTINATION ${CMAKE_INSTALL_PREFIX}/ip6
+)
diff --git a/templates/setup.sh.in b/templates/setup.sh.in
new file mode 100644
index 0000000000000000000000000000000000000000..1b9efa69b003ebc1d09fc6c14055977126ae2933
--- /dev/null
+++ b/templates/setup.sh.in
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+export BEAMLINE=@PROJECT_NAME@
+export BEAMLINE_PATH=@CMAKE_INSTALL_PREFIX@/share/@PROJECT_NAME@
+export BEAMLINE_CONFIG=@PROJECT_NAME@
+export BEAMLINE_VERSION=@GIT_BRANCH@
+
+## note: we will phase out the JUGGLER_* flavor of variables in the future
+export JUGGLER_BEAMLINE=$BEAMLINE
+export JUGGLER_BEAMLINE_CONFIG=$BEAMLINE_CONFIG
+export JUGGLER_BEAMLINE_VERSION=$BEAMLINE_VERSION
+export JUGGLER_BEAMLINE_PATH=$BEAMLINE_PATH
+
+## Export beamline libraries
+export LD_LIBRARY_PATH=@CMAKE_INSTALL_PREFIX@/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}