Installation
This section describes the various methods of installing ColdFront. New releases of ColdFront may introduce breaking changes. Please refer to the upgrading section and changelog for more information.
Downloading
ColdFront releases can be downloaded from PyPI or on GitHub here.
Requirements
ColdFront requires Python 3+
Installation Methods
Install via uv (recommended)
The recommended way of installing ColdFront is via uv:
$ uv tool install coldfront[ldap,freeipa,oidc]
Install via pip
ColdFront can be installed via pip inside a virtual environment:
$ python3 -mvenv venv
$ source venv/bin/activate
$ pip install --upgrade pip
# Adjust extras to suite your needs
$ pip install coldfront[ldap,freeipa,oidc,pg]
Install from source
$ git clone https://github.com/coldfront/coldfront.git
$ cd coldfront
$ uv sync --group dev
Configuring ColdFront
For complete documentation on configuring ColdFront see here. ColdFront can be configured via environment variables, an environment file, or a python file which can be used for more advanced configuration settings. ColdFront requires a database and if you don't configure one it will use SQLite by default.
Developing ColdFront
If you're interested in hacking on the ColdFront source code you can install by cloning our GitHub repo and install via uv. Note the master branch is the bleeding edge version and may be unstable. You can also checkout one of the tagged releases.
$ git clone https://github.com/coldfront/coldfront.git
$ cd coldfront
$ uv sync --group dev
Recommended
Checkout a tagged release by running:
git tag -l
git checkout v1.x.x
Initializing the ColdFront database
ColdFront supports MariaDB/MySQL, PostgreSQL, and SQLite. See the complete guide on configuring ColdFront for more details. By default, ColdFront will use SQLite and create a database file in your current working directory.
After configuring your database of choice you must first initialize the ColdFront database. This should only be done once:
$ uv run coldfront initial_setup
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
....
....
After the above command completes the ColdFront database is ready for use.
Creating the super user account
Run the command below to create a new super user account:
$ uv run coldfront createsuperuser
Tip
This command should prompt you to select a username, password, and email address for your super user account.
Running ColdFront server
ColdFront is a Django application and comes with a simple web server to get started quickly. This is good for evaluating ColdFront and testing/demo purposes. Run the following command to start the development web server:
$ DEBUG=True uv run coldfront runserver
Point your browser to http://localhost:8000 and login with the super user account you created.
Danger
Do not run this in production. For more information on deploying ColdFront in production see here.
Loading the sample test data
If you're interested in evaluating ColdFront we provide an easy way to load some test data so you can get a feel for how ColdFront works. Run this command to load the test data set:
$ uv run coldfront load_test_data
- You can log in as
adminwith passwordtest1234. - You can log in as a PI using username
cgraywith passwordtest1234. - You can log in as center director using username
csimmonswith passwordtest1234. - Password for all users is also
test1234.
Danger
Do not run with this data loaded in production environment. The default user accounts are created with weak passwords and should only be used for testing purposes. If you do decide to use the test data, delete the user accounts created at minimum.