GitBucket is a clone you could say of GitHub. However while it looks similar to GitHub it's certainly quite far from being what GitHub is. Sure it allows you to:
- Public / Private Git repository (http access only)
- Repository viewer (some advanced features such as online file editing are not implemented)
- Repository search (Code and Issues)
- Fork / Pull request
- Mail notification
- Activity timeline
- User management (for Administrators)
- Group (like Organization in Github)
- LDAP integration
- Gravatar support
but there's a lot missing, most notably the ability to use the Git/SSH protocol. However, with all the features included above I decided to give it a shot.
The first thing to note is this is not written in one of my preferred languages such as PHP, Ruby (on Rails) or even on node.js. It's done in Scala, which means that Java will be involved. I absolutely despise Java. Regardless I still went forth.
For my install I decided to deploy it to Heroku which meant I didn't have to install Tomcat or Glassfish, etc...
I have a CentOS 6.x Linux server which I used. First you'll need to install Java, pretty simple. You'll also need the development tools as well.
~/gitbucket $ yum install java-1.6.0-openjdk-devel java-1.6.0-openjdk.x86_64 -y ~/gitbucket $ export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-188.8.131.52.x86_64/jre
This will install Java and any necessary dependencies. One that's finish you'll want to get the GitBucket code. By default GitBucket doesn't come with the necessary configurations for working on Heroku, but someone has kindly updated the latest GitBucket branch with the necessary code and files.
~/gitbucket $ git clone -b heroku-1.9 https://github.com/xuwei-k/gitbucket.git
This tells git to snag the heroku-1.9 branch. From there you'll want to change the name of the branch to 'master'.
~/gitbucket $ git branch -m master
Now, you'll want to run the
sbt tool, thankfully this is included in this fork of the GitBucket code. It essentially allows you to compile the code locally on your system. You'll want to run the commands when prompted,
~/gitbucket $ ./sbt.sh [info] Loading project definition from /home/git/gitbucket/project [info] Set current project to gitbucket (in build file:/home/git/gitbucket/) >> clean [success] Total time: 0 s, completed Jan 29, 2014 9:10:55 PM >> compile [info] Compiling twirl template .../main.scala.html to .../main.template.scala [info] Compiling twirl template .../index.scala.html to .../index.template.scala [info] Compiling twirl template .../header.scala.html to .../header.template.scala [info] Compiling twirl template .../signinform.scala.html to .../signinform.template.scala [info] Compiling twirl template .../signin.scala.html to .../signin.template.scala ... >> stage [info] Generating /home/git/gitbucket/target/scala-2.10/resource_managed/main/rebel.xml. [info] Wrote start script for mainClass := Some(JettyLauncher) to /home/git/gitbucket/target/start [success] Total time: 1 s, completed Jan 29, 2014 9:13:58 PM
Once this is completed you can push it out to Heroku. First create the application:
~/gitbucket $ heroku create Creating sheltered-shelf-3564... done, stack is cedar http://sheltered-shelf-3564.herokuapp.com/ | firstname.lastname@example.org:sheltered-shelf-3564.git Git remote heroku added
Next push your code to Heroku.
~/gitbucket $ git push heroku master Initializing repository, done. Total 0 (delta 0), reused 0 (delta 0) -----> Scala app detected -----> Installing OpenJDK 1.7...done -----> Downloading SBT...done -----> Running: sbt compile stage Getting org.scala-sbt sbt 0.12.3 ...
It'll spew forth a lot of text, hopefully you should see something similar to:
[success] Total time: 140 s, completed Jan 30, 2014 3:26:53 AM [info] Generating /tmp/scala_buildpack_build_dir/target/scala-2.10/resource_managed/main/rebel.xml. [info] Wrote start script for mainClass := Some(JettyLauncher) to /tmp/scala_buildpack_build_dir/target/start [success] Total time: 1 s, completed Jan 30, 2014 3:26:55 AM -----> Discovering process types Procfile declares types -> web -----> Compressing... done, 204.8MB -----> Launching... done, v6 http://sheltered-shelf-3564.herokuapp.com deployed to Heroku To email@example.com:sheltered-shelf-3564.git * [new branch] master -> master
Once that's done just visit your Heroku instance, in our case it would be http://sheltered-shelf-3564.herokuapp.com. Hopefully this helps some people trying to install GitBucket and deploy it to Heroku.
GitBucket certainly looks like it could have a lot of potential, probably even more if it wasn't developed in Scala/Java. I did come across one issue so far, I installed GitBucket one night and was too tired to write this up until the morning, when I returned to login to my GitBucket installation it had removed the user account I had created the night before. When I re-logged in with the default root user, it was as if the install had completely reset. The creation timestamp for the root user was today (just now). I will have to submit an issue to takezoe/gitbucket. Other then that, I haven't come across any other issues and I think I'll continue to follow this project.
Update: I guess I was still pretty tired when I wrote this article but the issue with my GitBucket instance "resetting" on Heroku was because they don't have a persistent disk system. Anytime the instance falls asleep or goes idle the disk state resets essentially. One should be using something like Amazon S3 for disk storage or another similar service. I should have known that as well...
It's been a while since I've written anything containing any sort of substance. I've been relatively busy between work and working on other various projects I haven't had any time to write anything down!
Savannah and I managed to snag both a Playstation 4 and an Xbox One on launch days (without pre-ordering at that). I must say I find myself using the Xbox One a lot more, most likely because more of my friends are on the Xbox platform. I got Killzone Shadow Fall for PS4 which I still haven't opened and Call of Duty: Ghosts for Xbox One which I've been playing a lot of. On Playstation 4 I did download a couple free games, Warframe and Blacklight: Retribution. I've only had some time to play a bit of Warframe but I did find it to be a fun game.
I've been mostly focusing on Call of Duty: Ghosts on Xbox One . Our clan won our first ever clan war this past week. We unlocked a couple new badges which was cool as well as leveled up our clan. I also managed to get this one badge I'd been trying to get for a while now. It's the Snooze Button patch which can be a real pain in the butt to get.
Savannah and I have also been watching Attack on Titan and we both really enjoy it. We're also working on Suzuka and we watched the first episode from Pokémon Origins. I enjoyed it, it was fun to reminisce and see a new Pokémon anime.
I also started working on Pokémon X again since I had put it down for a while. It's definitely a fun game, but I really need to level up my critters a lot if I want to have any chance at finishing the game. Some girl with a single Pokémon took out about 4 of my 6 Pokémon...eep!
I've also been busy working on MyVideoGameList.com as well as my new little anime list application. It takes place of my account on MyAnimeList.net since I was getting a bit frustrated with the reliability and stability of their services. Currently it's only available to myself, but I may open it up to some close friends at some point.
Of screen and out of the tech world, I've been spending as much time as I can with my new Christmas present, which came in the form of a horse . He's a fantastic little (ok big) fellow, and I've been really having a lot of fun riding and working with him. It's really great having him because he gets me out of the house and out from behind the computer .
Other then these things, not much else is going on. Just enjoying life and going wherever it takes us...
I like anime, so it's only normal I would have an account at MyAnimeList.net right?! I do, but for a while now the site has been deteriorating. The stability isn't what I'd like it to be, and being someone who rarely puts their data on other servers, I felt it was finally time to move away from MyAnimeList.net.
While it's not available for public use at this time, I may consider implementing an invite feature which would allow me to invite some of my friends and in turn they could invite some of their friends. I am still working on backend features, such as searching, adding anime into the database and checking over the current code for catching various types of errors.
I've imported my list in it's entirety to my new applications and will hence using MyAnimeList.net from this point on. I wish them nothing but the best of course, and I have no doubt in my mind, with a little TLC they could be better then ever. For now, enjoy some screenshots:
This is my very first nendoroid which I got for Christmas this year. My girlfriend got it for me. It's Mirai Suenaga. I am hoping to get my hands on the Death Note characters, however they're a bit pricy, 3 at $200
I'll definitely take some more pictures soon!
This weekend I finally got some time to sit down and play a little Heartstone: Heroes of Warcraft. The game is in beta, but it plays very well. This game also is the first time I used the Battle.net game client. The Battle.net client is simple and works great. It allows you to manage any games you've purchased through Blizzard such as World of Warcraft, Diablo III and Starcraft II. I only own World of Warcraft and, now Hearthstone, but hey, it works!
The game download is about 1.3GBs, so it only took a 10-15 minutes to download and get installed. Before I go further I must admit that I suck at card games, so that's why I put off installing and playing the game for about a week or so. The only card games I've ever played are Pokémon and the World of Warcraft card games (which I was terrible at). I never really got into card games, they just didn't interest me. The idea of card games sounded boring and slow. Wizards, magic, spells, stats, and strategy is definitely not my thing.
Hearthstone: Heroes of Warcraft may not be your traditional card game, but it's definitely a lot of fun, and I really enjoy playing it. The game starts with a tutorial of sorts. It shows you how to play your cards, how various types of cards work and how Hearthstone in general works. If they hadn't included this I'd probably have given up and uninstalled the game already. Hearthstone only took me about 10-15 minutes to understand and pick up. Essentially you have a hero (who is Jana Proudmoore to begin with) and minion cards whom fight for you. There are also other cards you can utilize to boost your stats or cast spells or restore health.
Once I made it through the tutorial I had a look into the store. You can purchase card packs to help build your collection. Each pack comes with 5 cards, one of which is guaranteed to be rare. Purchasing a pack during the beta also entails you to a special card from Blizzard as a thanks. I ended up getting 7 packs ($9.99) which seemed like a fair price to me; I didn't pay anything for the game, so I figured spending $10 on something I actually liked wouldn't hurt! After purchasing your packs, you get to virtually un-wrap them! Fun, I know!
Once I had unwrapped my 7 packs, the game brings you into your collection of cards. From here you can manage your decks and create custom ones. You can create decks per class as well. I quickly made what I thought was a good deck and gave a shot at playing against another human. I was quickly annihilated. Regardless I got some experience points and leveled up. One thing I am not sure about is if you gain more HP for your hero while leveling up or not, I guess I should pay more attention.
Besides playing against real humans you can also go into Practice mode which lets you play against the computer. I find this to be useful in that I can level up my hero, as well as unlock new heroes and gain new cards. The game also has quests which you can complete to unlock new cards and goodies.
I've played about 5 matches with real humans so far, and unlocked the hunter class hero Rexxar. I've only built a single Mage class custom deck, but I attribute this to a lack of time to do much more. I certainly will continue to play Hearthstone: Heroes of Warcraft and may even drop another $10 for a few more card packs. For someone who generally dislikes card games, I find myself to be quite interested in this one. I have a feeling people similar to me, those who really enjoy Warcraft but aren't into card games may find themselves surprised at how fun Hearthstone is. I think not having a monthly fee to play also really helps me enjoy the game a lot more then say World of Warcraft (even though I do enjoy WoW). I'm excited to see how the game progresses as I suck less and less and as the game becomes more mature.
If anyone out there is playing, let me know!
I feel like these little soot sprites. Slaving away...can it be the weekend yet?!
A nifty map of all the catchable Pokémon in X & Y. I have the official guide but this is definitely cool nonetheless!
Alright, ready for another huge book on my life updates? Awesome!
I've completed the beta version rollout for MyVideoGameList.com and I've been busy these last few days working on squishing any bugs that come up. I've also been busy working on theming the forums which has turned out to be not as horrible as I thought it would be. In fact I'm actually having a bit of fun working on it. So far everything is really looking awesome on the new site, and I'm really really happy with how it turned out. There's a lot more work to be done, but it's a lot of fun.
At work, I've been busy working on our internal site and have developed at least 2-3 new modules which have come out really well. Today also happens to be our companies birthday. Happy Birthday!
I'm still working on Pokémon X as much as I can whenever I have some free time. Savannah and I are also trying to get a session of The Legend of Zelda: Skyward Sword in each night. We're at the Lanayru Ship part. I think we're both really enjoying this game, I know I definitely am. I'm really excited to see what Zelda game(s) come out for Wii U (which I've barely played due to the lack of games). I think the next game I play once that is complete will be Dead Space 3 on Xbox 360.
I believe that's about all the new news I have right now.
I did my very first Wonder Trade in Pokémon X this past weekend. I was quite wary going into the trade because of this article I had recently read on Kotaku which mainly complained about people putting in low level "junk" Pokémon if you may while you had put in a rare Pokémon or one you had worked on for a while in hopes of getting something equally as good back.
I managed to get a level 30 Onyx out of the trade! Woohoo!
It's definitely been quite some time since I've actually written anything useful in (not to say this post is useful) here, or anything at all. I've just been so incredibly busy with work and working on the new version of MyVideoGameList.com. It's Sunday evening, a rainy day in Texas, so I figured I could spend a few minutes spewing out what else I've been busy with.
The two biggest things consuming my life as mentioned above are working on the new MyVideoGameList.com and working. I've been getting as much code time in as I can between work and sleep. I've made a huge amount of progress and I'd say 95% of the functionality from the current site has made it's way into the new site. There's a few left I have to port over, the forums being one of the bigger ones.
Insert 5 day period between now and what I typed up there...
If that's not evidence that I've been busy, I don't know what is. I can barely find the time to even write out a new blog post.
This week I've been swamped with work and trying to get a usable version of MyVideoGameList ready so I can roll it out this weekend. I got a massive amount of work done on it and I think by tomorrow afternoon (fingers crossed), I can roll it out. There's several things, the biggest one being the forums that aren't ready for version 2.0, so I have to figure out how I am going to handle that.
At work I've been working on an intranet portal for our Linux System Administrators as well as pushing new administrator through our Linux Admin training program. I find that every time I do a training class I end up working on my quiz script and training materials (and then once the class ends I stop working on them). It ends up being a non-ending project since I usually end up working on my training materials only during training times which is 2-3 times a year. I really just need to buckle down and finish it soon instead of two or three times a year. I've also been working on two client registration/sign-up tools for some of our partners. It's a lot of fun, I do enjoy a little development work to break things up.
In really important news, my girlfriend and I hit up the midnight Pokémon X/Y release. It was enjoyable. I haven't been to a midnight release since the Nintendo Wii release. I do enjoy "nerding" it up once in a while. We even got some cool posters and a Pokémon timeline! We're both really enjoying the game. I don't think I've been this excited for Pokémon since Red and Blue. I love the music in the game and the graphics. They look really wonderful on my 3DSXL screen. I also managed to snag the guide last night on my way home from work, so I'll likely spend a good chunk of this weekend getting some more hours in. I've only made it up to the city where you get the first badge (which I now proudly have). I've managed to snag a Pikachu, Pigeotto, Zigzagoon, and a Bunnelby. I chose Fennekin as my starter. It seems to be a good choice since the first gym has trainers and a gym leader with bug type Pokémon. Overall I'm definitely very happy with the game and quite impressed by it.
I also managed to finish off Grand Theft Auto V. I really enjoyed the game and I'd love to keep working on it even if it's only to mess around in the game.
Insert another 5 day period between now and what I typed up there...
Gosh, darn I'm busy! I think I'll create another new post instead of making you read even more in this post!