diff --git a/.gitignore b/.gitignore
index 3a94b6c485dc0e613cc7bc2a810b2edae07af7dc..ec6afcdea4ec7f7f9c46ca95a10a3b1ef393f605 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
 __pycache__/
 *.py[cod]
 .env
+.cache/
+*.egg-info/
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000000000000000000000000000000000000..6c23239d7f03751220d1f6174c6fa590457482d6
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,69 @@
+from setuptools import setup, find_packages
+from codecs import open
+from os import path
+
+
+here = path.abspath(path.dirname(__file__))
+
+# Get the long description from the README file
+with open(path.join(here, 'README.md'), encoding='utf-8') as f:
+    long_description = f.read()
+
+
+setup(
+    name='openlobby',
+    version='0.1.0',
+    description='Open Lobby Server',
+    long_description=long_description,
+    url='https://github.com/openlobby/openlobby-server',
+    author='Jan Bednařík',
+    author_email='jan.bednarik@gmail.com',
+    license='MIT',
+    packages=find_packages(exclude=['tests']),
+)
+
+# TODO
+"""
+    # See https://pypi.python.org/pypi?%3Aaction=list_classifiers
+    classifiers=[
+        # How mature is this project? Common values are
+        #   3 - Alpha
+        #   4 - Beta
+        #   5 - Production/Stable
+        'Development Status :: 3 - Alpha',
+
+        # Indicate who your project is intended for
+        'Intended Audience :: Developers',
+        'Topic :: Software Development :: Build Tools',
+
+        # Pick your license as you wish (should match "license" above)
+        'License :: OSI Approved :: MIT License',
+
+        # Specify the Python versions you support here. In particular, ensure
+        # that you indicate whether you support Python 2, Python 3 or both.
+        'Programming Language :: Python :: 3',
+        'Programming Language :: Python :: 3.3',
+        'Programming Language :: Python :: 3.4',
+        'Programming Language :: Python :: 3.5',
+    ],
+
+    # What does your project relate to?
+    keywords='sample setuptools development',
+
+
+    # List run-time dependencies here.  These will be installed by pip when
+    # your project is installed. For an analysis of "install_requires" vs pip's
+    # requirements files see:
+    # https://packaging.python.org/en/latest/requirements.html
+    install_requires=['peppercorn'],
+
+    # List additional groups of dependencies here (e.g. development
+    # dependencies). You can install these using the following syntax,
+    # for example:
+    # $ pip install -e .[dev,test]
+    extras_require={
+        'dev': ['check-manifest'],
+        'test': ['coverage'],
+    },
+)
+"""