Note: it is now possible to run a Dota 2 dedicated server on Linux without WINE. This article is kept purely for archival purposes, though it should still work.

It is entirely possible to, using the Windows Alien Swarm SRCDS and WINE, run a Dedicated Server for Dota 2 on a Linux machine. Obtaining the required software is, however, a little tricky, so here is a guide.
  1. Install WINE 1.2.3 by following the instructions for your distribution on this page. (The latest version, 1.7, does not work. Other versions may work, but 1.2.3 definitely works)
    On Ubuntu, open a terminal and run:
    1. sudo apt-get add-repository ppa:ubuntu-wine/ppa
    2. sudo apt-get install wine1.2
  2. Download hldsupdatetool.bin from the Valve server and save it into a folder.
  3. Open a terminal and run:
    1. cd /path/to/hldsupdatetool
    2. chmod +x ./hldsupdatetool.bin
    3. ./hldsupdatetool.bin
    4. ./steam -command update -game alienswarm -dir .
    5. Grab a coffee. This could take a while.
  4. Obtain a Windows copy of Dota 2, by downloading Dota 2 on a Windows machine, and copying the C:\Program Files\Steam\SteamApps\common\dota 2 beta folder to the Linux machine, such that dota.exe resides at /path/to/dota/dota.exe.
  5. Copy srcds.exe from /path/to/hldsupdatetool/srcds.exe to /path/to/dota/srcds.exe.
  6. Follow the instructions in the Installing Metamod:Source section below.
  7. Open a terminal and run:
    1. cd /path/to/dota
    2. wine srcds -console -game dota -insecure +maxplayers 10 +map dota
  8. Ta-da! If everything went correctly, a console window should open up (and stay opened up) and you should be able to connect to the server from Dota as per a normal dedicated server!
    1. Use Steam to set the launch options of Dota 2 to -console.
    2. Run Dota 2. Once loaded, a console window should be visible. Enter in connect localhost, substituting ‘localhost’ for the IP address of the dedicated server.

Installing Metamod:Source

(Mirrored from the Sourcemod.js GitHub wiki, via this forum post)

Note: these instructions work for Windows as well as Linux (but only on a Windows copy of Dota!).
  1. Navigate to the download page for Metamod:Source, and download the Windows version of Metamod (at the time of writing, Extract (merging if necessary) the contents of the archive into the /path/to/dota/dota/ directory, such that the /path/to/dota/dota/addons/ folder is created.
  2. Download the latest version of Dota 2 Fixups. Extract (merging if necessary) the contents of the archive into the /path/to/dota/dota/ directory, such that the /path/to/dota/dota/addons/d2fixups/ folder is created.
  3. Modify the /path/to/dota/dota/gameinfo.txt file, and before the Game |gameinfo_path| line, add a GameBin |gameinfo_path|addons\metamod\bin line.