m (Use italics for file and dir names, not code blocks.) |
m (Use code blocks for file names and technical terms.) |
||
Line 19: | Line 19: | ||
# You need to generate a ssh key (<code>ssh-keygen -t rsa</code>). | # You need to generate a ssh key (<code>ssh-keygen -t rsa</code>). | ||
# Upload the ssh key into your Fedora account. To upload, [https://admin.fedoraproject.org/accounts/user/edit visit this link] and select your key file using the ''Public RSA SSH key'' field. Oftentimes, your public key can be found in your home directory under | # Upload the ssh key into your Fedora account. To upload, [https://admin.fedoraproject.org/accounts/user/edit visit this link] and select your key file using the ''Public RSA SSH key'' field. Oftentimes, your public key can be found in your home directory under <code>.ssh/id_rsa.pub</code>. The ssh key will become activated an hour after it is uploaded. | ||
# To connect, use the ssh key you uploaded into your Fedora account: | # To connect, use the ssh key you uploaded into your Fedora account: | ||
{{admon/important | Updating your SSH public key | If you want to update your SSH public key in [https://fedorapeople.org fedorapeople.org], do NOT manually edit your | <pre>ssh -i ~/.ssh/id_rsa <your_username>@fedorapeople.org</pre> | ||
{{admon/important | Updating your SSH public key | If you want to update your SSH public key in [https://fedorapeople.org fedorapeople.org], do NOT manually edit your <code>.ssh/authorized_keys</code> file. Go through [https://admin.fedoraproject.org/accounts/user/edit the usual FAS account edit page] and wait for it to be updated, or you will be locked out of your account.}} | |||
== Common answers == | == Common answers == | ||
Line 28: | Line 30: | ||
* Each Fedora contributor has 2000000 KiB (approximately 1954 MiB) of quota-controlled space. | * Each Fedora contributor has 2000000 KiB (approximately 1954 MiB) of quota-controlled space. | ||
* If you run out of space, you should clean up files you don't need. If you cannot clean anything up, you should contact Fedora Infrastructure team to raise your quota. | * If you run out of space, you should clean up files you don't need. If you cannot clean anything up, you should contact Fedora Infrastructure team to raise your quota. | ||
* To make a publicly viewable space, create a | * To make a publicly viewable space, create a <code>public_html</code> directory. | ||
* Fedora people is NOT to be used for development or repository creation. Repositories will need to be created elsewhere and uploaded via <code>scp</code> or <code>rsync</code>. | * Fedora people is NOT to be used for development or repository creation. Repositories will need to be created elsewhere and uploaded via <code>scp</code> or <code>rsync</code>. | ||
* DO NOT try to use sudo to install packages you "need". Unless you are in the Infrastructure group and have gotten approval from sysadmin-main, extra packages are not to be installed on [https://fedorapeople.org fedorapeople.org]. | * DO NOT try to use sudo to install packages you "need". Unless you are in the Infrastructure group and have gotten approval from sysadmin-main, extra packages are not to be installed on [https://fedorapeople.org fedorapeople.org]. | ||
Line 45: | Line 47: | ||
* Once files are uploaded into the user's | * Once files are uploaded into the user's <code>public_html</code> directory, the files will become available at: https://your_username.fedorapeople.org/. | ||
* Give other users access to read/write/etc files by using extended ACLs. Read man pages for <code>setfacl</code> and <code>getfacl</code> for adding them to your dirs/files. This gives the user | * Give other users access to read/write/etc files by using extended ACLs. Read man pages for <code>setfacl</code> and <code>getfacl</code> for adding them to your dirs/files. This gives the user <code>your_username</code> read and write access to <code>file</code>: | ||
<pre>setfacl -m u:your_username:rw file</pre> | <pre>setfacl -m u:your_username:rw file</pre> | ||
Line 52: | Line 54: | ||
== fedorapeople.org git hosting support == | == fedorapeople.org git hosting support == | ||
[https://fedorapeople.org fedorapeople.org] now has support for hosting git repositories. This includes access via the | [https://fedorapeople.org fedorapeople.org] now has support for hosting git repositories. This includes access via the <code>git://</code> protocol for anonymous downloads as well as providing the cgit web interface. | ||
Here is a quick rundown of how to get started with git on [https://fedorapeople.org fedorapeople.org]. It assumes that you are already somewhat familiar with git. You might want to take a look at the [[Git quick reference]]. | Here is a quick rundown of how to get started with git on [https://fedorapeople.org fedorapeople.org]. It assumes that you are already somewhat familiar with git. You might want to take a look at the [[Git quick reference]]. | ||
Line 69: | Line 71: | ||
</pre> | </pre> | ||
This creates a bare repository (i.e. a repository that has no working directory). It contains just the files that are part of the | This creates a bare repository (i.e. a repository that has no working directory). It contains just the files that are part of the <code>.git</code> directory of a non-bare git repository (the kind most users are accustomed to seeing). | ||
{{admon/important|Repository name must end with .git|cgit will not list repos that do not end | {{admon/important|Repository name must end with ".git"|cgit will not list repos that do not end with ".git".|}} | ||
Additionally if you wish your repository to show up in the cgit web interface, you must run the following command for any repositories you wish to appear there by default: | Additionally if you wish your repository to show up in the cgit web interface, you must run the following command for any repositories you wish to appear there by default: | ||
Line 116: | Line 118: | ||
It is also possible to clone your project via the | It is also possible to clone your project via the <code>http://</code> protocol. In order for this to work, you must arrange to have <code>git-update-server-info</code> run whenever you update your repository. Typically, this is done with a post-update hook script. However, the user home directories on [https://fedorapeople.org fedorapeople.org] are mounted with the noexec option, which prevents the script from running. Instead, you may create a symbolic link to <code>git-update-server-info</code> in the hooks directory of your repository: | ||
<pre> | <pre> | ||
Line 126: | Line 128: | ||
You also need to create a link from | You also need to create a link from <code>~/public_html/git</code> to <code>~/public_git</code>: | ||
<pre> | <pre> | ||
Line 134: | Line 136: | ||
You can clone your repository over | You can clone your repository over <code>http://</code> with a command similar to: | ||
<pre>git clone http://your_username.fedorapeople.org/git/repo.git/</pre> | <pre>git clone http://your_username.fedorapeople.org/git/repo.git/</pre> | ||
{{admon/tip|git:// versus http://|Only clone via | {{admon/tip|<code>git://</code> versus <code>http://</code>|Only clone via <code>http://</code> if you are behind a firewall that prevents <code>git://</code> from working. The <code>git://</code> protocol is faster and more efficient than the <code>http://</code> protocol for git usage.}} | ||
=== Browsing your project via cgit === | === Browsing your project via cgit === | ||
Line 146: | Line 148: | ||
{{admon/tip|Repository description|You can set the description for the repository that is displayed in cgit by editing the | {{admon/tip|Repository description|You can set the description for the repository that is displayed in cgit by editing the <code>description</code> file in your repository.}} | ||
=== Shared repository === | === Shared repository === |
Revision as of 11:48, 5 April 2020
fedorapeople.org
This page covers the details on how to obtain and use your personal space on fedorapeople.org, a site where Fedora contributors can upload files to share with the world. It is perfect for uploading specfiles, SRPMs, patches, or personal Git repositories.
Forbidden contents
- Do NOT distribute anything on fedorapeople.org that Fedora itself cannot distribute for legal reasons. Nothing on the ForbiddenItems list or otherwise non distributable by Fedora.
- Do NOT upload your private ssh keys. While the Fedora Infrastructure Team works hard on keeping the servers secure, break-ins will happen and private keys uploaded can be downloaded and brute-forced easily. Private .ssh keys found during an audit will be deleted.
Accessing your fedorapeople.org space
- You need an active Fedora account
- You must be part of at least one group (other than the CLA group) in the Fedora account system. Often annotated as CLA+1
- You need to generate a ssh key (
ssh-keygen -t rsa
). - Upload the ssh key into your Fedora account. To upload, visit this link and select your key file using the Public RSA SSH key field. Oftentimes, your public key can be found in your home directory under
.ssh/id_rsa.pub
. The ssh key will become activated an hour after it is uploaded. - To connect, use the ssh key you uploaded into your Fedora account:
ssh -i ~/.ssh/id_rsa <your_username>@fedorapeople.org
Common answers
- Each Fedora contributor has 2000000 KiB (approximately 1954 MiB) of quota-controlled space.
- If you run out of space, you should clean up files you don't need. If you cannot clean anything up, you should contact Fedora Infrastructure team to raise your quota.
- To make a publicly viewable space, create a
public_html
directory. - Fedora people is NOT to be used for development or repository creation. Repositories will need to be created elsewhere and uploaded via
scp
orrsync
. - DO NOT try to use sudo to install packages you "need". Unless you are in the Infrastructure group and have gotten approval from sysadmin-main, extra packages are not to be installed on fedorapeople.org.
- Upload files using
scp
,sftp
, orrsync
.
To copy files from the command line, you can use scp
scp /path/to/file your_username@fedorapeople.org:/home/fedora/your_username/public_html
- Once files are uploaded into the user's
public_html
directory, the files will become available at: https://your_username.fedorapeople.org/. - Give other users access to read/write/etc files by using extended ACLs. Read man pages for
setfacl
andgetfacl
for adding them to your dirs/files. This gives the useryour_username
read and write access tofile
:
setfacl -m u:your_username:rw file
fedorapeople.org git hosting support
fedorapeople.org now has support for hosting git repositories. This includes access via the git://
protocol for anonymous downloads as well as providing the cgit web interface.
Here is a quick rundown of how to get started with git on fedorapeople.org. It assumes that you are already somewhat familiar with git. You might want to take a look at the Git quick reference.
Create a ~/public_git directory on fedorapeople.org
ssh your_username@fedorapeople.org "mkdir ~/public_git; /sbin/restorecon -Rv ~/public_git"
Creating a new git repository in ~/public_git
As an example, here is one method to create an empty repository on your local system and upload it:
git init --bare repo.git scp -r repo.git/ your_username@fedorapeople.org:~/public_git/
This creates a bare repository (i.e. a repository that has no working directory). It contains just the files that are part of the .git
directory of a non-bare git repository (the kind most users are accustomed to seeing).
Additionally if you wish your repository to show up in the cgit web interface, you must run the following command for any repositories you wish to appear there by default:
touch ~/public_git/yourgitrepo.git/git-daemon-export-ok
Uploading an existing repository to ~/public_git
If you have an existing repository you want to use on fedorapeople.org, you can do so easily:
git clone --bare /path/to/local/repo repo.git scp -r repo.git/ your_username@fedorapeople.org:public_git/
The caveats from the previous section apply here as well.
Pushing to your repository
To push changes from a local repository:
cd /path/to/local/repo git remote add fedorapeople your_username@fedorapeople.org:public_git/repo.git git push --mirror fedorapeople
This creates a mirror of your local repository. All of the branches and tags in the local repository will be pushed to the fedorapeople.org repository.
If you only want to push selected branches, amend the git push
example. For example, to push only your local master branch:
git push fedorapeople master
Cloning your repository
To clone your repository, use a command similar to:
git clone git://fedorapeople.org/~your_username/repo.git
It is also possible to clone your project via the http://
protocol. In order for this to work, you must arrange to have git-update-server-info
run whenever you update your repository. Typically, this is done with a post-update hook script. However, the user home directories on fedorapeople.org are mounted with the noexec option, which prevents the script from running. Instead, you may create a symbolic link to git-update-server-info
in the hooks directory of your repository:
ssh your_username@fedorapeople.org cd ~/public_git/repo.git/hooks ln -svbf $(git --exec-path)/git-update-server-info post-update git update-server-info
You also need to create a link from ~/public_html/git
to ~/public_git
:
cd ~/public_html ln -svbf ../public_git git
You can clone your repository over http://
with a command similar to:
git clone http://your_username.fedorapeople.org/git/repo.git/
Browsing your project via cgit
You can see your project listed in cgit once the project list updates. This happens hourly.
If you want to give access to your repository to other users you can do this with ACLs.
setfacl -R -m u:<user>:rwX <repo.git> find <repo.git> -type d | xargs setfacl -R -m d:u:<user>:rwX
Enable per-repo upload-archive
If you want to allow your repository to be accessible via git archive --remote
, you will need to set set the following in your repository's config file:
[daemon] uploadarch = true
Policies
Viruses
fedorapeople.org servers are regularly scanned for viruses, including people's home directories, because of the nature of providing download of user-uploaded files on a Fedora domain name. As soon as a virus is reported by the scanners, they will be scanned again by another scanner to make sure they're actual viruses (and not just an overly active scanner). If the second opinion also reports the file as being a virus, the file will be moved to a non-public facing directory, and the owner will be notified. If the user has not yet responded after a week, the file will be deleted.