Run the server
This page is for the server admin.
1How do you run the server?
Start the server
Section titled “Start the server”Docker
-
Start the server.
Terminal window docker run -d --name telesphorepo -p 8080:8080 -v telesphorepo-data:/data -v telesphorepo-backups:/backups ghcr.io/telesphorepo/telesphorepo:latest -
Copy the admin password from the log.
Terminal window docker logs telesphorepo
Docker Compose
-
Save this as
compose.yamlin a folder of its own.compose.yaml services:telesphorepo:image: ghcr.io/telesphorepo/telesphorepo:latestrestart: unless-stoppedports:- "8080:8080"volumes:- telesphorepo-data:/data- telesphorepo-backups:/backupsvolumes:telesphorepo-data:name: telesphorepo-datatelesphorepo-backups:name: telesphorepo-backups -
Start the server.
Terminal window docker compose up -d -
Copy the admin password from the log.
Terminal window docker compose logs telesphorepo
For HTTPS and backups in the same file, see Run with Docker Compose.
Podman
-
Start the server.
Terminal window podman run -d --name telesphorepo -p 8080:8080 -v telesphorepo-data:/data -v telesphorepo-backups:/backups ghcr.io/telesphorepo/telesphorepo:latest -
Copy the admin password from the log.
Terminal window podman logs telesphorepo
Download the program
-
Download the
telesphorepo-serverfile for your system from GitHub Releases. -
Unpack the file.
-
Start the server, and copy the admin password that it shows.
Terminal window ./telesphorepo-server serve
Sign in
Section titled “Sign in”-
Open
http://localhost:8080. -
Sign in as
admin, with the password from the log. -
Add your authenticator app when the page asks.
Authenticator app › Add. Scan the code, then type the code from your phone.
Set the public address
Section titled “Set the public address”-
Open Settings › General.
-
Set Public base URL to the address that people use.
https://repo.example.com -
Click Save.
CI jobs cannot publish without the public address. To serve it over HTTPS with Caddy, see Serve over HTTPS.
Make a repository
Section titled “Make a repository”-
Open Settings › Repositories, then click New repository.
-
Type a name, such as
releases. -
Choose the format: Maven / Gradle, npm, Python (PyPI), Cargo (Rust), NuGet, Debian (apt) or Raw files. For Docker, see below.
-
Choose Hosted for your own packages.
-
Click Create repository.
Add public packages
Section titled “Add public packages”A proxy keeps a copy of each package that people download from a public registry. A group joins several repositories under one address. With a group of your hosted repository and a proxy, people install your packages and the public ones through one address.
-
Make a repository of the same format, and choose Proxy. Pick the remote, such as Maven Central,
registry.npmjs.org, PyPI, crates.io or nuget.org. -
Make a repository of the same format, and choose Group.
-
Add the members in order: your hosted repository first, then the proxy.
-
Click Create repository.
Neither kind takes uploads. In an npm, Python, Cargo or NuGet group, the first member that has a package name owns it, and the group serves every version of that name from that member only. So a public package with the name of your private package cannot take its place. A Maven group merges the versions of all its members.
Make a Docker repository
Section titled “Make a Docker repository”A Docker repository holds container images, Helm charts and other OCI files.
-
Open Settings › Repositories, then click New repository.
-
Type a name, such as
docker. It is the first part of every image name. -
Choose Docker. Choose Hosted to push images to it. Choose Proxy to keep copies of Docker Hub, GitHub Container Registry or Quay. Choose Group to join several repositories.
-
Click Create repository.
Docker needs the server at the root of a host, such as https://repo.example.com. It cannot use an address with a path. For large images and the push address, see Run in production. People push and pull as in Docker and Helm.
Give people Publish
Section titled “Give people Publish”-
Open Settings › Repositories › your repository › Access.
-
Click Give access.
-
Choose the people.
-
Tick Publish.
-
Click the button that gives them access.
To add a person first, open Settings › People and click New account. See People and sign-in.
Then send people two links: Set up a project for the first person on a project, and Publish a package for everyone. Also send the page of your format: Gradle and Maven, npm, Python, Rust and Cargo, .NET and NuGet, Docker and Helm, or Debian, raw and curl.
Add a CI pipeline
Section titled “Add a CI pipeline”A developer sends you the values. Set up a project tells them which ones.
-
Open Settings › CI pipelines, then click New CI pipeline.
-
Choose GitHub Actions or Jenkins.
-
Fill in the values that the developer sent you.
-
Tick the repository.
-
Click Create CI pipeline.
Jenkins: a freestyle job or a Jenkinsfile
Both kinds of job use the same CI pipeline. Under Jobs, write the full job name with its folders, such as team/app. A branch of a multibranch pipeline is a job of its own, such as app/main.
If this server cannot reach Jenkins, open the Jenkins address followed by /oidc/jwks. Paste the whole page into Jenkins keys. Do it again when Jenkins changes its keys.
Move from Nexus
Section titled “Move from Nexus”To copy your Nexus 3 repositories, see Move from Nexus.
If something goes wrong
Section titled “If something goes wrong”Find your problem, then do the fix
The log shows no password. Wait a few seconds, then run the log command again.
You lost the admin password. Run docker exec -it telesphorepo /telesphorepo-server user passwd admin, and type a new one.
You want to pick the first admin yourself. Set TR_BOOTSTRAP_ADMIN_USER and TR_BOOTSTRAP_ADMIN_PASSWORD on the first start. The server reads them only while it has no users.
Your data is gone after you removed the container. Always keep the telesphorepo-data volume. It holds the database, the files and the key for your secret settings.
You run the program and want to know where the data is. It is in ./data, next to where you started it.
Which image tags and systems are there? The image runs on linux/amd64 and linux/arm64. Each release has the tags X.Y.Z and X.Y, and latest is the newest. Check a downloaded program against SHA256SUMS on the release page.