Προαπαιτούμενα
Εγκαταστήστε το Apache
Εγκαταστήστε το PostgreSQL
Εγκαταστήστε το Ruby
Εγκαταστήστε το Passenger
Εγκαταστήστε το Redmine
Διαμόρφωση του Apache
Προστασία του Apache με Let's Encrypt SSL
Το Redmine είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο διαχείρισης έργων που βασίζεται στο web. Είναι γραμμένο σε Ruby on Rails και υποστηρίζει πολλούς διακομιστές βάσης δεδομένων για την αποθήκευση της βάσης δεδομένων. Είναι μια πλούσια σε χαρακτηριστικά εφαρμογή που υποστηρίζει πολλαπλά έργα, ACL που βασίζεται σε ρόλους και σύστημα παρακολούθησης προβλημάτων. Διαθέτει επίσης υποστήριξη γραφήματος και ημερολογίου Gantt, διαχείριση αρχείων, wiki και φόρουμ ανά έργο, καθώς και πολλές άλλες δυνατότητες. Υποστηρίζει συστήματα ελέγχου έκδοσης όπως Git, SVN ή CVS. Είναι επίσης πολύγλωσσο, υποστηρίζοντας έως και 49 γλώσσες.
Αυτός ο οδηγός γράφτηκε για το Redmine 3.4.4, αλλά μπορεί να ισχύει και για νεότερες εκδόσεις.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Vultr CentOS 7.
- Ένας χρήστης sudo .
- Ένα όνομα τομέα στραμμένο προς τον διακομιστή.
Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε 192.168.1.1ως δημόσια διεύθυνση IP και redmine.example.comως όνομα τομέα που δείχνει προς την παρουσία του Vultr. Βεβαιωθείτε ότι έχετε αντικαταστήσει όλες τις εμφανίσεις του παραδείγματος ονόματος τομέα και διεύθυνσης IP με την πραγματική.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το CentOS 7 . Αφού ενημερωθεί το σύστημά σας, προχωρήστε στην εγκατάσταση των εξαρτήσεων.
Εγκαταστήστε το Apache
Το Redmine είναι γραμμένο σε Ruby on Rails, επομένως θα απαιτήσουμε από το Phusion Passenger να ενσωματωθεί στον διακομιστή ιστού Apache για να εξυπηρετήσει την εφαρμογή. Εγκαταστήστε το Apache.
sudo yum -y install httpd httpd-devel libcurl-devel
Για να δημιουργήσουμε την εφαρμογή Redmine, θα χρειαστούμε και κάποια εργαλεία ανάπτυξης. Εγκαταστήστε τα απαιτούμενα εργαλεία.
sudo yum -y install ImageMagick ImageMagick-devel git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel
Εγκαταστήστε το PostgreSQL
Το Redmine υποστηρίζει πολλούς τύπους διακομιστών βάσεων δεδομένων, όπως MySQL, PostgreSQL και MSSQL. Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε την PostgreSQL για να φιλοξενήσουμε τον διακομιστή βάσης δεδομένων Redmine.
Το PostgreSQL είναι ένα αντικειμενοσχεσιακό σύστημα βάσης δεδομένων. Το προεπιλεγμένο yumαποθετήριο περιέχει μια παλιά έκδοση της PostgreSQL, επομένως προσθέστε το αποθετήριο PostgreSQL στο σύστημα.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Εγκαταστήστε τον διακομιστή βάσης δεδομένων PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Αρχικοποιήστε τη βάση δεδομένων.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Ξεκινήστε τον διακομιστή PostgreSQL και ενεργοποιήστε τον να ξεκινά αυτόματα κατά την εκκίνηση.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Αλλάξτε τον κωδικό πρόσβασης για τον προεπιλεγμένο χρήστη PostgreSQL.
sudo passwd postgres
Συνδεθείτε ως χρήστης PostgreSQL.
sudo su - postgres
Δημιουργήστε έναν νέο χρήστη PostgreSQL για το Redmine.
createuser redmine
Επιτρέπεται να χρησιμοποιείτε οποιοδήποτε όνομα χρήστη αντί για redmine. Η PostgreSQL παρέχει το psqlκέλυφος για την εκτέλεση ερωτημάτων στη βάση δεδομένων. Μεταβείτε στο κέλυφος PostgreSQL.
psql
Ορίστε έναν κωδικό πρόσβασης για τον χρήστη που δημιουργήθηκε πρόσφατα για τη βάση δεδομένων Redmine.
ALTER USER redmine WITH ENCRYPTED password 'DBPassword';
Αντικαταστήστε DBPasswordμε έναν ασφαλή κωδικό πρόσβασης. Δημιουργήστε μια νέα βάση δεδομένων για την εγκατάσταση του Redmine.
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
Έξοδος από το psqlκέλυφος.
\q
Εναλλαγή στο sudoχρήστη.
exit
Επεξεργαστείτε το pg_hba.confαρχείο για να ενεργοποιήσετε τον έλεγχο ταυτότητας βάσει MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Βρείτε τις ακόλουθες γραμμές και αλλάξτε τις τιμές peerκαι identστη METHODστήλη σε trustκαι md5, αντίστοιχα.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Μόλις ενημερωθεί, η διαμόρφωση θα πρέπει να μοιάζει με αυτό.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Κάντε επανεκκίνηση της PostgreSQL για να τεθούν σε ισχύ οι αλλαγές.
sudo systemctl restart postgresql-10
Εγκαταστήστε μερικές ακόμη απαιτούμενες εξαρτήσεις PostgreSQL.
sudo yum -y install libpqxx-devel protobuf-devel
Εγκαταστήστε το Ruby
Συνιστάται η χρήση ενός μη προνομιούχου χρήστη για την εκτέλεση της εφαρμογής για να παραμείνει απομονωμένη από το υπόλοιπο σύστημα. Δημιουργήστε έναν νέο χρήστη για το Redmine και μεταβείτε στον νέο χρήστη.
sudo adduser redmine
sudo su - redmine
Θα εγκαταστήσουμε την πιο πρόσφατη έκδοση του Ruby χρησιμοποιώντας Ruby Version Manager ή RVM. Χρησιμοποιείται για την εγκατάσταση και τη διαχείριση πολλαπλών εκδόσεων του Ruby.
Προσθέστε το κλειδί GPG του RVM στον διακομιστή σας.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Εγκαταστήστε το RVM.
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
Λάβετε τη λίστα με τις διαθέσιμες εκδόσεις του Ruby.
rvm list known
Θα δείτε μια μακρά λίστα με εκδόσεις Ruby.
[redmine@vultr ~]$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head
...
Εγκαταστήστε την πιο πρόσφατη έκδοση του Ruby από τη λίστα.
rvm install 2.4
Χρησιμοποιήστε την εγκατεστημένη έκδοση του Ruby.
rvm use 2.4
Μπορείτε να επαληθεύσετε την έκδοσή του.
ruby -v
Θα δείτε μια παρόμοια έξοδο.
[redmine@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
Εγκαταστήστε το bundler, το οποίο είναι ο διαχειριστής εξαρτήσεων για την εφαρμογή Ruby.
gem install bundler
Το Ruby είναι πλέον εγκατεστημένο. Πριν εγκαταστήσουμε το Redmine, θα χρειαστεί να εγκαταστήσουμε το Phusion Passenger.
Εγκαταστήστε το Passenger
Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε το Passenger.
gem install passenger
Παρέχετε άδεια εκτέλεσης στον αρχικό κατάλογο του redmineχρήστη. Ο επιβάτης πρέπει να εκτελέσει τα δυαδικά αρχεία για να εξυπηρετήσει την εφαρμογή.
chmod o+x "/home/redmine"
Εγκαταστήστε τη λειτουργική μονάδα Apache για επιβάτες.
passenger-install-apache2-module
The installer script will ask you some questions. First, it will provide you information about the installation process. Then it will ask you to select the language which you will be using. Since our application is written in Ruby on Rails, select Ruby from the menu and press "Enter" to proceed further.
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬡ Python
⬡ Node.js
⬡ Meteor
The installer will now check for requirements. The installer will not encounter any missing dependencies and will automatically proceed to compile and install the module.
Once the module is installed, it will prompt you to add the module into the Apache configuration file.
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerDefaultRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
We will skip this for now and will complete it later in the tutorial as the user with which we are logged in now does not have sudo permissions. Press "Enter" to skip this step.
Finally, the installer script will validate the installation and you will see a warning saying the Passenger module is not specified in Apache configuration.
Validating installation...
* Checking whether this Passenger install is in PATH... ✓
* Checking whether there are no other Passenger installations... ✓
* Checking whether Apache is installed... ✓
* Checking whether the Passenger module is correctly configured in Apache... (!)
You did not specify 'LoadModule passenger_module' in any of your Apache
configuration files. Please paste the configuration snippet that this
installer printed earlier, into one of your Apache configuration files, such
as /etc/httpd/conf/httpd.conf.
Detected 0 error(s), 1 warning(s).
Press ENTER to continue.
Now that we have installed the Passenger module for Apache, proceed to download and install Redmine.
Install Redmine
Download the latest version of Redmine from the official Redmine download page.
cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz
Extract the archive and rename the directory for sake of convenience.
tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/
Copy the example configuration files to its production location.
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Open the database configuration file we just copied to enter the database details.
nano config/database.yml
By default, the database file is configured for MySQL. Find the configurations for production and development, and test which uses the MySQL adapter. Comment out all of these lines.
#production:
# adapter: mysql2
# database: redmine
# host: localhost
# username: root
# password: ""
# encoding: utf8
#development:
# adapter: mysql2
# database: redmine_development
# host: localhost
# username: root
# password: ""
# encoding: utf8
#test:
# adapter: mysql2
# database: redmine_test
# host: localhost
# username: root
# password: ""
# encoding: utf8
Furthur, find the lines which are commented, having production configuration for the postgresql adapter. Uncomment those lines and update the database name and user credentials. Make sure to use the correct indentation, which is two spaces.
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "DBPassword"
Configure the application to use the PostgreSQL configuration.
bundle config build.pg --with-pg-config=/usr/pgsql-10/bin/pg_config
Install the application dependencies required by the application.
bundle install --without development test
You will see the following message at the end of the installation.
Installing roadie-rails 1.1.1
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development and test were not installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
The following command generates secret tokens that are used to encode the session data.
bundle exec rake generate_secret_token
Write the PostgreSQL database.
RAILS_ENV=production bundle exec rake db:migrate
Run the following command, which writes the default data into PostgreSQL database.
RAILS_ENV=production bundle exec rake redmine:load_default_data
The above command will ask you to choose the default language to be used with the application. The default choice is English; choose according to your preference.
[redmine@vultr redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
====================================
Default configuration data loaded.
Η εγκατάσταση της εφαρμογής Redmine έχει πλέον ολοκληρωθεί. Αλλάξτε την ιδιοκτησία και τα δικαιώματα των καταλόγων και των αρχείων.
mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
Έχουμε διαμορφώσει όλα όσα χρειαζόμαστε από τον μη προνομιούχο χρήστη. Επιστρέψτε στον sudoχρήστη εκτελώντας το su - <username>.
Προσθέστε τη λειτουργική μονάδα Passenger για Apache στο αρχείο διαμόρφωσης Apache. Αυτό θα φορτώσει αυτόματα τη μονάδα Passenger.
echo "LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/httpd/conf.modules.d/00-base.conf
Δημιουργήστε ένα νέο αρχείο εικονικού κεντρικού υπολογιστή για την εφαρμογή σας Redmine.
sudo nano /etc/httpd/conf.d/redmine.conf
Συμπληρώστε το αρχείο με το ακόλουθο περιεχόμενο.
<VirtualHost *:80>
ServerName redmine.example.com
DocumentRoot /home/redmine/redmine/public
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
PassengerUser redmine
<Directory /home/redmine/redmine/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Φροντίστε να το αντικαταστήσετε redmine.example.comμε το πραγματικό σας όνομα τομέα. Επίσης, βεβαιωθείτε ότι η διαδρομή προς το PassengerRootκαι PassengerRubyείναι σωστή. Η διαδρομή προς τα δυαδικά αρχεία μπορεί να αλλάξει όταν υπάρχει μια νέα κυκλοφορία του Ruby ή του Passenger. Για να βρείτε αυτές τις διαδρομές, εκτελέστε την ακόλουθη εντολή.
sudo su redmine -c "passenger-config about ruby-command"
Θα λάβετε την ακόλουθη έξοδο.
[user@vultr ~]$ sudo su redmine -c "passenger-config about ruby-command"
passenger-config was invoked through the following Ruby interpreter:
Command: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
Version: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
To use in Apache: PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
To use in Nginx : passenger_ruby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
To use with Standalone: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/bin/passenger start
Μόλις δημιουργηθεί το αρχείο Virtual host, επανεκκινήστε τον διακομιστή ιστού Apache.
sudo systemctl restart httpd
Τροποποιήστε τη διαμόρφωση του τείχους προστασίας για να επιτρέπεται η θύρα 80μέσω του τείχους προστασίας.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload
Τώρα μπορείτε να αποκτήσετε πρόσβαση στη διεπαφή Redmine στο http://redmine.example.com. Είσοδος με όνομα χρήστη adminκαι κωδικό πρόσβασης admin. Κατά την πρώτη σας σύνδεση, το Redmine θα σας ζητήσει να ενημερώσετε τον κωδικό πρόσβασης.
Προστασία του Apache με Let's Encrypt SSL
Εφόσον η εγκατάσταση του Redmine είναι σε δημόσιο διακομιστή, συνιστάται η χρήση SSL για να διασφαλιστεί η ανταλλαγή των δεδομένων από τον διακομιστή.
Εγκαταστήστε το Certbot, το οποίο είναι η εφαρμογή πελάτη για το Let's Encrypt CA.
sudo yum -y install epel-release
sudo yum -y install certbot mod_ssl
Για να μπορέσετε να ζητήσετε για τα πιστοποιητικά, θα πρέπει να επιτρέψει το λιμάνι 80και την 443τυπική ή HTTPκαι HTTPSυπηρεσιών μέσω του τείχους προστασίας. Επειδή έχουμε ήδη επιτρέψει τη θύρα 80νωρίτερα, ας επιτρέψουμε τη θύρα 443.
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Σημείωση: Για να αποκτήσετε πιστοποιητικά από το Let's Encrypt CA, ο τομέας για τον οποίο πρόκειται να δημιουργηθούν τα πιστοποιητικά πρέπει να κατευθύνεται προς τον διακομιστή. Εάν όχι, κάντε τις απαραίτητες αλλαγές στις εγγραφές DNS του τομέα και περιμένετε να διαδοθεί το DNS προτού υποβάλετε ξανά το αίτημα πιστοποιητικού. Το Certbot ελέγχει την αρχή τομέα πριν από την παροχή των πιστοποιητικών.
Δημιουργήστε τα πιστοποιητικά SSL.
sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com
Τα πιστοποιητικά που δημιουργούνται είναι πιθανό να αποθηκευτούν στο /etc/letsencrypt/live/redmine.example.com/. Το πιστοποιητικό SSL θα αποθηκευτεί ως cert.pemκαι το ιδιωτικό κλειδί θα αποθηκευτεί ως privkey.pem.
Ας κρυπτογραφήσουμε τα πιστοποιητικά λήγουν σε 90 ημέρες, επομένως συνιστάται να ρυθμίσετε την αυτόματη ανανέωση των πιστοποιητικών χρησιμοποιώντας εργασίες Cron.
Ανοίξτε το αρχείο εργασίας Cron για τον rootχρήστη.
sudo crontab -e
Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου.
30 5 * * * /usr/bin/certbot renew --quiet
Η παραπάνω εργασία Cron θα εκτελείται καθημερινά στις 5:30 π.μ. Εάν το πιστοποιητικό πρόκειται να λήξει, θα ανανεωθεί αυτόματα.
Επεξεργαστείτε το αρχείο εικονικού κεντρικού υπολογιστή που δημιουργήσαμε νωρίτερα για το Redmine.
sudo nano /etc/httpd/conf.d/redmine.conf
Τροποποιήστε το αρχείο του εικονικού κεντρικού υπολογιστή ώστε να μοιάζει με το ακόλουθο.
<VirtualHost *:80>
Redirect permanent / https://www.example.com/
ServerName redmine.example.com
</VirtualHost>
<VirtualHost *:443>
ServerAdmin admin@example.com
ServerName redmine.example.com
DocumentRoot "/home/redmine/redmine/public"
<Directory "/home/redmine/redmine/public">
Options None
Require all granted
</Directory>
PassengerAppEnv production
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
PassengerUser redmine
PassengerHighPerformance on
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/redmine.example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/redmine.example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/redmine.example.com/chain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
<IfModule headers_module>
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
</IfModule>
</VirtualHost>
Αποθηκεύστε το αρχείο και βγείτε από το πρόγραμμα επεξεργασίας.
Κάντε επανεκκίνηση του Apache για να ισχύσουν οι αλλαγές.
sudo systemctl restart httpd
Τώρα μπορείτε να αποκτήσετε πρόσβαση στο Redmine HTTPSστο https://redmine.example.com.
Συγχαρητήρια, εγκαταστήσατε με επιτυχία το Redmine στην παρουσία του CentOS 7. Ξεκινήστε να αναπτύσσετε το έργο σας είτε δημιουργώντας είτε εισάγοντας το έργο σας.