📖
Eclipse PASS Documentation
PASS Documentation - DEV
PASS Documentation - DEV
  • Welcome to the Public Access Submission System (PASS) Documentation
  • PASS Welcome Guide
    • Research Submission Overview
    • PASS at JHU
    • PASS Demonstrations at Conferences
    • Technology Stack
    • PASS Architecture
    • Latest Release
    • Setup and Run PASS Locally
    • Collaboration with Other Institutions
    • Contributing to PASS
  • Community
    • Developer Guidelines
    • PASS Roadmap
    • Release Notes
  • Developer Documentation
    • Use Cases
    • PASS Core
      • Authentication & Authorization
      • API
        • DOI API
        • File API
        • Metadata Schema API
        • Policy API
        • User API
      • Model
        • Deposit
        • File
        • Funder
        • Grant
        • Journal
        • Policy
        • Publication
        • Repository
        • RepositoryCopy
        • Submission
        • SubmissionEvent
        • User
    • PASS UI
    • Data Loaders
      • Grant Loader
      • Journal Loader
      • NIHMS Loader
    • Deposit Services
      • Knowledge Needed / Skills Inventory
      • Technologies Utilized
      • Model
      • Statuses
      • Business Logic
      • Assemblers
      • Configuration
      • Next Steps / Institution Configuration
    • Notification Services
      • Knowledge Needed / Skills Inventory
      • Technologies Utilized
      • Model
      • Business Logic
      • Template
      • Dispatch
      • Configuration
      • Next Steps / Institution Configuration
    • PASS Acceptance Testing
    • PASS Docker
      • Testing InvenioRDM
    • Release
      • Automated Release
  • PASS Infrastructure
    • CI/CD
    • Code Quality Analysis
      • Code Coverage
    • Deployment
      • GitHub CI/CD
    • Operations/Production
      • Knowledge Needed / Skills Inventory
      • Technologies Utilized
      • PASS Design & AWS Architecture
      • AWS Cost Estimates
      • PASS Versioning
      • How to Deploy
      • Monitoring
      • Data Loaders
      • Data & Backups
      • Eclipse Operations
      • Next Steps / Institution Configuration
Powered by GitBook
On this page
  • Table of Contents
  • Summary
  • AWS Infrastructure Components
  • Deep Dive: Deployment & Release
  • Prerequisites
  • PASS Deployment Process
  • PASS Release Process
  • Related Information
  1. PASS Infrastructure

Deployment

PreviousCode CoverageNextGitHub CI/CD

Last updated 6 months ago

Table of Contents

Summary

The Public Access Submission System (PASS) is an open-source platform designed to streamline compliance with funder and institutional open access policies. This guide outlines the deployment process for PASS, which is adaptable to various architectures including cloud, hybrid, or on-premises environments.

Note: PASS is transitioning towards a cloud-native version. Expect ongoing changes to the architecture, infrastructure, and deployment process, such as moving from Docker Compose to Kubernetes or implementing Infrastructure as Code with Terraform. See (roadmap)[./roadmap.md] for more information.

AWS Infrastructure Components

The current PASS infrastructure in AWS includes:

  • EC2: Hosts Docker Compose

  • ECS: Hosts auxiliary microservices

  • RDS: Stores metadata

  • S3: Stores binary data (managed by OCFL)

  • ALB: Provides SSL for the frontend

  • WAF: Protects the frontend

Deep Dive: Deployment & Release

Prerequisites

  • Docker and Docker Compose

  • Git

PASS Deployment Process

  1. Install dependencies:

    apt-get -y update
    apt-get install -y gnupg2 pass docker compose
  2. Clone the repository:

    mkdir -p /src
    cd /src
    git clone git@github.com:eclipse-pass/pass-docker.git
    cd pass-docker
    git checkout minimal-assets
  3. Run PASS:

    cd /src/pass-docker && \
      docker compose pull && \
      docker compose up

PASS Release Process

PASS uses semantic versioning (MAJOR.MINOR.PATCH). The release process includes:

  1. Code contribution

  2. CI/CD via GitHub Actions

  3. Building and testing

  4. Generating release artifacts (Java artifacts and Docker images)

  5. Publishing artifacts to repositories

  6. Triggering deployment via AWS SQS

  7. Updating infrastructure with new artifacts

  8. Generating release notes

GitHub Actions Release Workflow

The "Publish: Release All" workflow automates the release process:

  1. Builds and tests components

  2. Publishes Java artifacts

  3. Builds and pushes Docker images

  4. Creates GitHub Releases

Related Information

For detailed configuration, refer to the Actions workflow.

Please refer to for further information on its useage.

For further assistance or questions, please open an issue in the or find us in the .

pass-complete-release.yml
github-cicd.md
PASS main repository
PASS Docker repository
PASS main repository
PASS Slack
Summary
AWS Infrastructure Components
Deep Dive: Deployment & Release
PASS Deployment Process
PASS Release Process
Related Information