Fly.io Organizations are how you group related resources and users together. They’re the fundamental unit for access control and billing.

Let’s see it in action. Imagine you’re setting up a new project for your company.

# First, create a new organization
fly orgs create my-awesome-company

# Now, list your organizations to confirm
fly orgs list

Output will show your newly created organization, likely with your user as the sole member.

Name: my-awesome-company
ID: org_abcdef1234567890
Owner: user@example.com
Members:
  - user@example.com (owner)

Organizations hold your apps, databases, volumes, and other resources. They also define who can do what. This is managed through roles assigned to members. The primary roles are owner and member. Owners have full control, including inviting/removing members and managing billing. Members can manage apps and resources within the organization but can’t change organization-level settings or billing.

To add a new team member:

# Invite a new member to your organization
fly orgs invite my-awesome-company --email team-member@example.com --role member

# You can also assign the owner role, but be cautious
# fly orgs invite my-awesome-company --email lead-dev@example.com --role owner

The invited member will receive an email with a link to accept the invitation. Once they accept, they’ll be able to see and manage resources within my-awesome-company using their own Fly.io account.

The flyctl command-line tool is your primary interface for managing organizations. You can list organizations, view details of a specific organization, invite members, change member roles, and remove members.

# View details of your organization
fly orgs show my-awesome-company

# Change a member's role
fly orgs update my-awesome-company --member team-member@example.com --role owner

# Remove a member
fly orgs remove my-awesome-company --member team-member@example.com

When you create an app, it’s automatically associated with your current organization. You can switch your active organization context using flyctl:

# List available organizations you belong to
fly orgs list

# Set a different organization as your active context
flyctl config set --org my-other-company

Any subsequent flyctl commands related to resource management (like deploying an app or creating a database) will then operate within my-other-company.

The owner role is crucial for security and administration. If you are the only owner and lose access to your account, or if you need to transfer ownership, it can become complicated. It’s best practice to have at least two owners for any production organization.

When you invite a user, Fly.io sends them an email. This email contains a unique, time-limited token. The user clicks the link, which authenticates them against their Fly.io account and associates them with your organization with the specified role. If the link expires, you’ll need to re-invite them. The system doesn’t track invite status beyond the initial send; it’s up to the user to accept.

The next step is understanding how these organizations directly influence resource creation and deployment, particularly with regards to regions and resource allocation.

Want structured learning?

Take the full Fly-io course →