pixelbrackets / open-source-profile
Self-Hosted profile page for your Open Source packages & contributions
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Forks: 0
Type:project
pkg:composer/pixelbrackets/open-source-profile
Requires
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^10.0
README
Self-Hosted profile page for your Open Source packages & contributions.
![]()
⭐ You like this package? Please star it or send a tweet. ⭐
Vision
The general idea of this project is to have one place with all Open Source packages and contributions of a person.
There are several platforms to host Open Source projects like GitHub, Gitlab, Bitbucket, Sourceforge & Launchpad, and they all have fancy user profile pages. They are isolated however. On BitBucket I can't showcase the one project I maintain on GitLab only. The GitHub activity stream won't show contributions to Launchpad. Let alone projects with self-hosted Git servers.
This creates a vendor lock-in. Which becomes obious when you search for Open Source Software catalogues, contributions, or statistics. Most support GitHub only.
Goals:
- List of all projects and packages of a person
- List of contributions of a person (issues, merge requests, commits)
- List of packages a person likes (starred projects)
- List of all sponsorings (Open Collective, GitHub Sponsors, Patreon)
- List contributors and sponsors for packages of a person
- Highlight packages - Show most important projects at a glance
- Hide packages - Don't show packages generated automatically by subsplits, forks or mirrors
- Support for multiple Git hosting services (not just GitHub)
- Link mirrors - Git supports multiple remotes, no need to limit to one repository host only
- Reduced UI (no platform specific buttons)
The package follows the KISS principle.
🚧 WIP
The package is only prototype right now, to go through the idea.
Next steps:
- Add a framework like Slim or Symfony and a template engine
- Add more metadata to projects and user
- Add a tool to initiate the project list
- Fetch contributions
- Fetch metadata (only overwrite fields like description)
- Make the output static (to deploy to Static Hosts)
Requirements
- PHP
Installation
Packagist Entry https://packagist.org/packages/pixelbrackets/open-source-profile/
- Point your webserver to the
webdirectory - Copy
data/projects.template.jsontodata/projects.jsonand add links to all your repositories - Copy
data/user.template.jsontodata/user.jsonand add your username
Source
https://gitlab.com/pixelbrackets/open-source-profile/
Mirror https://github.com/pixelbrackets/open-source-profile/ (Issues & Pull Requests mirrored to GitLab)
Demo
🚀 https://opensource.pixelbrackets.de/
Usage
The data directory holds all necessary information to generate the view.
Projects:
repository-url- Required, stringdescription- Optional, stringdevelopment-state- Optional, string (defaults toactive)active- Ongoing developmentmaintenance- Maintenance mode - no active development but PRs are welcomearchived- EOL - Project is discontinued
User:
username- Required, stringname- Optional, stringemail- Optional, stringbio- Optional, string - Bio/profession/job title (e.g., "Web Developer & Open Source Enthusiast")status- Optional, string - A short status message (e.g., "Building in public", "Available for hire")links- Optional, array of objects - External links to display on profilelabel- Required, string - Display text for the linkurl- Required, string - URL to link to
License
GNU General Public License version 2 or later
The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html.
Author
Dan Untenzu (mail@pixelbrackets.de / @pixelbrackets)
Changelog
See CHANGELOG.md
Contribution
This script is Open Source, so please use, share, patch, extend or fork it.
Contributions are welcome!
Feedback
Please send some feedback and share how this package has proven useful to you or how you may help to improve it.