# Stash Latest : Installing Stash on Linux and Mac

This page last changed on Sep 27, 2012 by pwatson.

Hey! We're going to install Stash on a Linux box, or a Mac. There are a few steps, but we think you'll really like Stash once it's up and running. ### 1. Check supported platforms Better check the Supported platforms page first; it lists the application servers, databases, operating systems, web browsers and JDKs that we have tested Stash with and recommend. Atlassian only officially supports Stash running on x86 hardware and 64-bit derivatives of x86 hardware. | Related pages: Installing Stash on Windows Getting started with Git and Stash Supported platforms Stash upgrade guide

### 2. Check your version of Java

In a terminal, run this:

    java -version

The version of Java should be 1.6.0 or higher.

If you don't see Java 1.6.0 or higher, then get Java...

Download and install the Java Platform JDK (not the JRE) from Oracle's website.

Now try running '`java -version`' again to check the installation. The version of Java should be 1.6.0 or higher.

### 3. Check that the system can find Java

In a terminal, run this:

    echo $JAVA_HOME

You should see a path like `/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/`.

If you don't see a path then set JAVA_HOME...

| If you don't know what your Java home directory is, try running the command `which java` in your terminal.

Linux | Mac
--- | ---
Do either of the following: If `JAVA_HOME` is not set, log in with 'root' level permissions and run:
    echo JAVA_HOME="path/to/JAVA_HOME" >> /etc/environment
- where `path/to/JAVA_HOME` may be like: `/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/` If `JAVA_HOME` needs to be changed, open the `/etc/environment` file in a text editor and modify the value for `JAVA_HOME` to:
      JAVA_HOME="path/to/JAVA_HOME"
It should look like: `JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/` | Open your `~/.profile` file in a text editor and insert:
    JAVA_HOME="path/to/JAVA_HOME"
    export JAVA_HOME
where `path/to/JAVA_HOME` may be like: `/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/` Refresh your ~/.profile in the terminal and confirm that `JAVA_HOME` is set:
    source ~/.profile
    $JAVA_HOME/bin/java -version
You should see a version of Java that is 1.6.0 or higher, like this: `java version "1.6.0_24"`

### 4. Check your version of Git

In a terminal, run this:

    git --version

The version of Git should be 1.7.6 or higher.

If you don't see version 1.7.6 or higher, then get Git...

Download and install the latest stable Git release from the Git website.

Now try running '`git --version`' again. The version of Git should be 1.7.6 or higher.

Please note the following:

- See the Git resources page for links to more Git download sites.
- At the time of writing, the default Git version on Ubuntu Linux is 1.7.5.x, which is too old for Stash: see https://launchpad.net/~git-core/+archive/ppa.

- At the time of writing, on Mac OS X, the Git tar archive can fail on special characters when using SSH to secure connections between your computer and Stash. (The Git `archive` command allows you to download as a single file the files in a checkout of the Git repository.) We recommend that you use the zip format; you can set that using the following command:

      git archive --format zip

### 5. Now it's time to get Stash

Download Stash from the Atlassian download site.

Extract the downloaded file to an install location. The path to the extracted directory is referred to as the``<Stash installation directory>`` in these instructions.

### 6. Tell Stash where to store your data

The Stash home directory is where your Stash data is stored.

Create your Stash home directory (without spaces in the name), and then tell Stash where you created it by editing the `<Stash installation directory`>`/bin/setenv.sh` file – uncomment the `STASH_HOME` line and add the absolute path to your home directory. Here's an example of what that could look like when you're done:

You should not locate your Stash home directory inside the ``<Stash installation directory>`` — they should be entirely separate locations. If you do put the home directory in the ``<Stash installation directory>`` it will be overwritten, and lost, when Stash gets upgraded. And by the way, you'll need separate Stash home directories if you want to run multiple instances of Stash.

### 7. Start Stash!

In a terminal, change directory to `<Stash installation directory>` and run this:

    bin/start-stash.sh

In your browser, go to http://localhost:7990 and run through the Setup Wizard. In the Setup Wizard:

- Select Internal at the 'Database' step, if you are evaluating Stash. Stash will happily use its internal database, and you can easily migrate to external database later. See Connecting Stash to an external database.
- You can set up JIRA integration, but you can do this later if you wish. See Configuring JIRA integration in the Setup Wizard.

### 8. Set up your mail server

Configure your email server so users can receive a link from Stash that lets them generate their own passwords. See Setting up your mail server.

### 9. Add users and repositories

Now is the time to set up your users in Stash, and to tell Stash about any existing repositories you have. Please the following pages for the details:

- Getting started with Git and Stash
- Importing code from an existing project

### 9. Additional steps for production environments

For production environments we recommend that you configure the additional aspects below. These are not necessary when installing for evaluation purposes.

##### Use an external database

- For production environments Stash should use an external database, rather than the embedded database. See Connecting Stash to an external database.

##### Secure the Stash home directory

- For production environments the Stash home directory (created in step 7 above) should be secured against unauthorised access. See Stash home directory.

##### Secure Stash with HTTPS

- For production environments access to Stash should be secured using HTTP over SSL, especially if your data is sensitive and Stash is exposed to the internet. See Securing Stash with HTTPS.

##### Connect to your existing user directory

- See External user directories.

### 10. Stop Stash (optional)

In a terminal, change directory to `<Stash installation directory>` and run this:

    bin/stop-stash.sh

## Attachments:

Stash_1_0_stash_home.png (image/png)
Stash_1_0_stash_home.png (image/png)